Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1037 commits
Select commit Hold shift + click to select a range
769b554
chore: regenerate lockfile to include github-integration plugin
Mar 25, 2026
499994c
fix(adapter-utils): add missing applyLocalAgentFilesystemEnv export
Mar 25, 2026
fe818c3
fix: correct issueId resolution in GitHub plugin tools and link-table…
Mar 25, 2026
d1bc4ca
fix(server): add expireTerminatedRunLocks, enqueueProcessLostRetries,…
Mar 25, 2026
c913e2a
fix(github-plugin): fail fast on missing required config instead of s…
Mar 25, 2026
d1b735f
fix(github-plugin): add retry and rate-limit handling to GitHub API c…
Mar 25, 2026
729aef6
fix(adapter-utils,server): add finishedWorkspacePaths, FINISHED_WORKS…
Mar 25, 2026
e16d124
fix: align adapter imports and server code with upstream v2026.325.0
nydamon Mar 25, 2026
8c028fe
fix(timestamps): fix toISOString bug in instance-settings service
nydamon Mar 25, 2026
648d737
fix(ci): remove duplicate upstream pr.yml and canary dry-run step
nydamon Mar 25, 2026
d9d4172
feat(github-plugin): add pull_request event support
Mar 25, 2026
2ea46ba
fix(github-plugin): use createComment instead of update comment field
Mar 25, 2026
01c56cd
Merge upstream v2026.325.0 with scope revert and fixes (#85)
nydamon Mar 25, 2026
1b77567
fix(github-plugin): harden dedup, search, and comment pagination (#86)
nydamon Mar 26, 2026
6209876
fix(release): remove accidental private:true from publishable package…
nydamon Mar 26, 2026
06d8cce
fix(release): verify npm after publish error to handle transient 404s…
nydamon Mar 26, 2026
20c3471
fix(release): use npm publish directly and respect configured verify …
nydamon Mar 26, 2026
8788a21
revert(release): restore private:true on all fork packages (#90)
nydamon Mar 26, 2026
e027a83
docs: add pi-autoresearch framework, plugin persistence, and secrets …
nydamon Mar 26, 2026
d744262
docs: add pi-autoresearch framework, plugin persistence, and secrets …
nydamon Mar 26, 2026
9741c7a
fix(memory): replace unbounded promise chain with queue-draining log …
nydamon Mar 26, 2026
893528a
Merge pull request #92 from Viraforge/fix/oom-log-chain-memory-leak
nydamon Mar 26, 2026
5554a69
fix(heartbeat): add global concurrent run limit to prevent OOM
nydamon Mar 27, 2026
7b75946
Merge pull request #93 from Viraforge/fix/heartbeat-global-concurrenc…
nydamon Mar 27, 2026
eebaa9e
fix(docker): build adapter-utils to include memory leak fix (#94)
nydamon Mar 27, 2026
aa317a3
fix(oom): reduce heap limit to 2GB and tighten event subscription cle…
nydamon Mar 27, 2026
b96b45e
fix(release): gracefully skip when no public packages found (#96)
nydamon Mar 27, 2026
cb9556b
fix(oom): raise heap limit to 3GB (#97)
nydamon Mar 27, 2026
be892fb
fix(oom): add memory debug endpoints (#98)
nydamon Mar 27, 2026
81af61c
fix(heartbeat): cap resultJson to prevent OOM crash loop (#99)
nydamon Mar 27, 2026
c312f04
fix(heartbeat): stop loading full resultJson in list queries — root c…
nydamon Mar 27, 2026
13e28e8
fix(adapter): retry on Edit tool concurrency race (DLD-1298)
nydamon Mar 28, 2026
84d7b6a
fix(release): gracefully skip canary tag push when all packages are p…
nydamon Mar 28, 2026
9024732
fix(adapter): retry Edit concurrency race up to 3 times with backoff …
nydamon Mar 28, 2026
3fa1b72
chore(docker): upgrade opencode-ai to 1.3.3 for GLM 5.1 (#106)
nydamon Mar 28, 2026
9944be0
fix(heartbeat): harden concurrency gate, auth debug endpoints, raise …
nydamon Mar 28, 2026
261eca7
feat(platform): qa-gate self-healing cron in docker-entrypoint (DLD-1…
Mar 28, 2026
2167640
Merge pull request #108 from Viraforge/feat/DLD-1378-qa-gate-self-hea…
nydamon Mar 28, 2026
5e0b1e7
fix(heartbeat): remove custom global concurrency limit, use upstream …
nydamon Mar 30, 2026
ea52f6f
feat(hermes): add bridge to hermes-agent sidecar container (#109)
nydamon Mar 30, 2026
309042e
fix(hermes): mask exit 134 in bridge script (#112)
nydamon Mar 30, 2026
f2f868c
feat(delivery-gate): enforce code delivery before agent status transi…
nydamon Mar 31, 2026
de74d87
docs(agents): disable QA gate plugin, update QA workflow to direct as…
nydamon Apr 1, 2026
986d78d
feat(qa-gate): enforce QA approval before agents can mark code issues…
nydamon Apr 1, 2026
a17bc38
docs(agents): update AGENTS.md with QA gate enforcement rules (#119)
nydamon Apr 1, 2026
d682015
fix(qa-gate): prevent self-QA approval and clean up dead pipeline art…
nydamon Apr 1, 2026
07bdbf9
fix(drift-check): add settle-window retries for deploy lag (#120)
nydamon Apr 1, 2026
aade0b1
fix(issues): enforce forward-only status transitions for agents (#122)
nydamon Apr 1, 2026
6d93f4c
docs(claude.md): add quality gates section with all three enforcement…
nydamon Apr 1, 2026
9bc46d5
fix(delivery-gate): require valid GitHub URLs on work products (#124)
nydamon Apr 1, 2026
8f3ee29
fix(ci): drop arm64 from Docker workflow to cut build time from 25m t…
nydamon Apr 1, 2026
a748340
feat: add observe-only pipeline watchdog (#126)
viraforge-ai Apr 1, 2026
1569f7c
docs(claude.md): add work product URL verification, watchdog, and Doc…
nydamon Apr 1, 2026
6d73928
fix(watchdog): address code review findings from PR #126 (#129)
nydamon Apr 1, 2026
a896a2c
feat: detect review handoff gaps in pipeline watchdog (#128)
viraforge-ai Apr 1, 2026
0547787
feat: assignment policy gate + fix @mention wakeup for multi-word nam…
nydamon Apr 2, 2026
7f1a42d
docs: require QA handback for failed implementation lanes (#132)
viraforge-ai Apr 2, 2026
9f5dce6
fix: harden agent disposition contract and observe stale issue truth …
viraforge-ai Apr 2, 2026
fb643b0
feat: add comment-required gate + grant tasks:assign to workflow agen…
nydamon Apr 2, 2026
1898191
Merge branch 'master' into feat/comment-required-gate-and-assign-grants
nydamon Apr 2, 2026
5c4d857
feat: comment-required gate + tasks:assign grants for workflow agents…
nydamon Apr 2, 2026
ffb5234
fix: activate stale lock sweeper + short-circuit no-op PATCH updates …
nydamon Apr 2, 2026
93b59d5
feat: auto-assign from @mention when agent transitions to in_review (…
nydamon Apr 2, 2026
07cb122
feat: add capability-check bundled skill (#137)
nydamon Apr 2, 2026
e729174
feat: add sweepUnpickedAssignments() activation watchdog
nydamon Apr 2, 2026
3748dbb
fix(DLD-1595): add missing dispatch-gaps.ts and assertManagerOf to ma…
nydamon Apr 2, 2026
e5a29d0
fix(DLD-1595): add assertManagerOf export to authz.ts
nydamon Apr 2, 2026
7ff07b6
Merge pull request #142 from Viraforge/fix/DLD-1595-dispatch-gaps-master
nydamon Apr 2, 2026
743cb93
feat: inject live permission state into every heartbeat run (#143)
nydamon Apr 2, 2026
9f2955c
fix(DLD-1652): harden opencode models fallback for Research Agent (#140)
nydamon Apr 3, 2026
19c759f
fix: CEO fleet health sweep for in_review routing (#136)
nydamon Apr 3, 2026
7dd5f10
fix(deploy): stop edge container before recreate to fix port 80 race …
nydamon Apr 3, 2026
89db426
fix(instructions): tell all agents only SPE has GitHub/CI access (#141)
nydamon Apr 3, 2026
a967ac0
feat: automate ai-review/verdict via OpenRouter (#144)
nydamon Apr 3, 2026
85b94e8
chore: rename RTAA to ViraCue across watchdog, docs, and CLAUDE.md (#…
nydamon Apr 3, 2026
695511b
chore: bump pi CLI 0.61.1 → 0.65.0 (#146)
nydamon Apr 3, 2026
2f90324
fix(pi-local): read model list from stderr for pi CLI ≥0.65.0 (#147)
nydamon Apr 3, 2026
8f19225
feat(issues): agent issue creation rate limit (5/hour default)
nydamon Apr 3, 2026
c9beffe
feat(github-plugin): dedup CI failure issues by title prefix
nydamon Apr 3, 2026
0079f77
docs: add issue creation spam prevention design doc
nydamon Apr 3, 2026
fdbd520
fix: revert pi CLI to 0.61.1 — RPC mode broken in 0.65.0 (#148)
nydamon Apr 3, 2026
cbe84df
Merge branch 'master' into feat/issue-creation-spam-prevention
nydamon Apr 3, 2026
2bc8282
Merge pull request #149 from Viraforge/feat/issue-creation-spam-preve…
nydamon Apr 3, 2026
a81a437
feat: add review handoff gate to prevent in_review self-assignment st…
nydamon Apr 3, 2026
b84c6d2
fix: allow assigneeUserId handoff in review handoff gate (#152)
nydamon Apr 4, 2026
4f9ea12
fix: pin Docker base image to Node 22 (not floating LTS) (#153)
nydamon Apr 4, 2026
2c0e7d0
fix(issues): serialize Date in agent rate-limit query (#154)
nydamon Apr 4, 2026
22b70fc
merge(upstream): v2026.403.0 with quality gates and sweepers preserved
nydamon Apr 4, 2026
9e800d9
Merge remote-tracking branch 'origin/master' into upgrade/v2026.403.0
nydamon Apr 4, 2026
932a797
merge(upstream): v2026.403.0 with quality gates and sweepers preserved
nydamon Apr 4, 2026
020ba1c
fix(github-plugin): prevent duplicate CI failure issue spam (#157)
nydamon Apr 4, 2026
346f714
fix(docker): add gosu to Dockerfile.vps
nydamon Apr 4, 2026
95c384e
fix(docker): add gosu to Dockerfile.vps and remove USER node (#159)
nydamon Apr 4, 2026
af5988d
fix(docker): make entrypoint resilient to gosu permission errors
nydamon Apr 4, 2026
37392b8
fix(issues): serialize Date to ISO string in comment cursor paginatio…
nydamon Apr 4, 2026
7e1fdcb
fix(gates): enforce QA gate on all issues, not just workspace issues …
nydamon Apr 4, 2026
dd49d1d
fix(heartbeat): expire execution locks held by stale queued runs (#156)
nydamon Apr 4, 2026
7db2b75
fix(heartbeat): sweep queued runs for terminal issues (#163)
nydamon Apr 4, 2026
97b2fe3
fix(issues): set executionLockedAt on checkout and relax sweeper WHER…
nydamon Apr 4, 2026
d76cef8
fix(heartbeat): cast issueId text to uuid in sweeper join (#166)
nydamon Apr 4, 2026
c907672
fix(agents): CEO handoff cooldown, forbidden ops, gstack browse aware…
nydamon Apr 4, 2026
972b458
feat: auto-deploy, adapter circuit breaker, plugin severity tiers (#167)
nydamon Apr 4, 2026
1df244a
fix(pi-local): inject permissions, API URL, and turn limits into pi_l…
nydamon Apr 4, 2026
abb474e
feat(ai-review): add auto-remediation for review findings (#170)
nydamon Apr 4, 2026
f0890aa
feat(heartbeat): inject agent roster into every heartbeat prompt (#172)
nydamon Apr 4, 2026
467c7d8
docs: enforce interactive outcome testing for engineer handoff and QA…
nydamon Apr 4, 2026
5887b0d
fix(ci): auto-merge HIGH_RISK PRs and auto-update behind branches (#175)
nydamon Apr 4, 2026
7867679
fix(issues): raise agent issue creation rate limit from 5 to 50/hour …
nydamon Apr 4, 2026
dc9f2cd
docs(agents): add mandatory browse command protocol for simulation/QA…
nydamon Apr 5, 2026
097d275
fix(perf): disable feedback telemetry when no export backend is confi…
nydamon Apr 5, 2026
9361fdf
fix(heartbeat): enforce task-bound scoping on wake, skip active-run t…
nydamon Apr 5, 2026
712f7b3
fix(issues): add comment retrigger wakeup and allow engineer→devops h…
nydamon Apr 5, 2026
f8dded7
fix(heartbeat): eliminate waste from no-op runs, gate-bashing loops, …
nydamon Apr 5, 2026
1aad1ab
fix(ci): use PAT for ai-review verdict to trigger merge-automation (#…
nydamon Apr 5, 2026
424f6e2
ops: tune server for 16GB host, autovacuum tuning, process_lost auto-…
nydamon Apr 5, 2026
894532a
fix(issues): expand handoff matrix, devops↔engineer, management escal…
nydamon Apr 5, 2026
400fe0f
fix(ci): trigger merge-automation on check_run completion (#184)
nydamon Apr 5, 2026
5aef165
feat(server): enforce task-bound scope at API level (#185)
nydamon Apr 5, 2026
0829925
feat(agents): replace gstack browse with dedicated Browser Testing VP…
nydamon Apr 5, 2026
db785c3
feat(skills): add bundled dogfood skill for systematic app QA (#187)
nydamon Apr 5, 2026
717f713
docs: add Browser Testing VPS to claude.md (#188)
nydamon Apr 5, 2026
40008f0
fix(DLD-2014): add return after HIGH_RISK verdict to prevent bypass (…
nydamon Apr 5, 2026
21bb347
fix(server): add 15-min cooldown on comment retrigger wakeups (#191)
nydamon Apr 6, 2026
4930cf9
feat(server): add browser evidence gates for code issue transitions (…
nydamon Apr 6, 2026
3ae1430
feat(heartbeat): inject wake context into agent prompts (#193)
nydamon Apr 6, 2026
96f01a1
fix(DLD-2045): nginx sync in deploy + automated VPS SSH key rotation
nydamon Apr 6, 2026
1e7af2b
fix(issues): remove task-bound scope short-circuit from list endpoint…
nydamon Apr 6, 2026
edf57c0
fix(ci): graceful fork divergence in upstream-sync.sh
Apr 6, 2026
176cf56
fix(docker): set node user home to /paperclip so gosu preserves HOME …
nydamon Apr 6, 2026
34ba28c
fix(gates): resolve evidence timing race in browse evidence gates (#203)
nydamon Apr 6, 2026
374eeab
chore(upstream-sync): add -X ours strategy and env backup (DLD-2110) …
nydamon Apr 6, 2026
82f4bcd
fix(security): wrap Docker CLI to block agent docker build/run/stop (…
nydamon Apr 6, 2026
8e27245
fix(gates): enforce review cycle, hotfix fallback, screenshot uploads…
nydamon Apr 6, 2026
3a97dfd
feat(gates): grant Hermes control-plane assignment privileges (#205)
nydamon Apr 6, 2026
f935bde
fix(github-plugin): reduce CI noise with auto-close, dedup normalizat…
nydamon Apr 6, 2026
c34ffac
fix(sweeper): deduplicate db-bypass detection entries (#209)
nydamon Apr 6, 2026
f6a89a7
fix(gates): add work product registration instructions and improve ga…
nydamon Apr 6, 2026
e526ad1
fix(gates): add work product registration instructions and improve ga…
nydamon Apr 6, 2026
7f39289
fix(hermes): grant node user Docker socket access after privilege drop
nydamon Apr 7, 2026
7413d3c
[ai-fix] Replaced `|| true` with explicit error logging when usermod …
ai-review[bot] Apr 7, 2026
9cf6a02
fix(gates): widen browse evidence regex and relax text requirement wh…
nydamon Apr 7, 2026
c6673d6
fix(gates): protect board-assigned issues from agent reassignment (#213)
nydamon Apr 7, 2026
dd38db8
fix(gates): widen browse evidence regex and relax text requirement wh…
nydamon Apr 7, 2026
b82f58a
fix(gates): remove updatedAt timing drift from QA evidence gate (#215)
nydamon Apr 7, 2026
85e38d7
fix(sweeper): auto-revert blocked→done SQL bypasses back to blocked (…
nydamon Apr 8, 2026
79c834d
fix(sweeper): expire stale agent sessions to prevent echo-chamber beh…
nydamon Apr 8, 2026
f9a163b
fix(sweeper): bump unpicked assignment retrigger limit from 1 to 3 (#…
nydamon Apr 8, 2026
8febc80
feat(governance): route guard standards, multi-role QA, auth PR requi…
nydamon Apr 8, 2026
86ec92b
fix(heartbeat): board user wakeups bypass gate block backoff (#221)
nydamon Apr 8, 2026
1c1f4a2
fix(gates): add no-browser-surface exemption to browse evidence gates…
nydamon Apr 8, 2026
050555e
fix(heartbeat): @mentions bypass comment retrigger cooldown (#222)
nydamon Apr 8, 2026
f6c50e4
feat: bake Google Workspace tools into Docker image
nydamon Apr 8, 2026
6f7693b
feat(skill): add loops-lifecycle-ops with API/docs reference
nydamon Apr 8, 2026
395bd3c
feat(DLD-2396): add /api/agents/me/issues alias route (#225)
nydamon Apr 8, 2026
129a3e0
Merge pull request #211 from Viraforge/fix/hermes-docker-socket-permi…
nydamon Apr 8, 2026
3a12fd4
Merge pull request #223 from Viraforge/feat/google-workspace-tools
nydamon Apr 8, 2026
6e32a0a
feat(DLD-2396): add /api/agents/me/issues alias route for inbox-lite
nydamon Apr 8, 2026
9bf3f58
fix(gates): scope browse evidence gates to CODE_PROJECT_IDS (DLD-2400…
nydamon Apr 8, 2026
e45949e
Merge pull request #228 from Viraforge/fix/DLD-2396-agents-me-issues-…
nydamon Apr 9, 2026
f422c4f
fix(gates): restore board-user bypass in assertEngineerBrowseEvidence…
nydamon Apr 9, 2026
fc2c87a
feat(skill): add PostHog analytics skill (#229)
nydamon Apr 9, 2026
8043648
fix(skills): persist all 13 bundled skills in Docker image (#231)
nydamon Apr 9, 2026
20db197
fix(verify-skills): normalize PAPERCLIP_SKILLS_DIR parent vs skills p…
nydamon Apr 9, 2026
de4a53d
chore(ci): switch ai review to direct minimax (#234)
nydamon Apr 9, 2026
73af76f
feat(poly-weather): persist 12-skill reliability+wallet pack in Docke…
nydamon Apr 9, 2026
471b96f
fix(ci): load ai review inputs from files (#238)
nydamon Apr 9, 2026
c6d4544
chore(ci): reduce scheduled workflow spend (#243)
nydamon Apr 10, 2026
541619f
fix(ci): scope pr docker verification to runtime changes (#245)
nydamon Apr 10, 2026
0803456
chore(ci): skip ai review for docs-only prs (#244)
nydamon Apr 10, 2026
4f9a4d5
fix(github-plugin): reduce noisy ci issue creation (#240)
nydamon Apr 10, 2026
9b6ceee
fix: auto-retire resolved relay issues (#241)
nydamon Apr 10, 2026
6852559
feat: add shared composio mcp rollout (#242)
nydamon Apr 10, 2026
414a03e
fix: include external mcp headers in codex config
nydamon Apr 10, 2026
f23e4f1
Merge pull request #246 from Viraforge/codex/composio-codex-header-fix
nydamon Apr 10, 2026
b8bbffe
fix(DLD-2987): Composio MCP hardening in HTTP adapter (#247)
nydamon Apr 10, 2026
b36bccb
fix(docker): update stale GitHub CLI apt key hash (#248)
nydamon Apr 10, 2026
546657a
fix: systemic improvements to agent gating, sweepers, and CI (#249)
nydamon Apr 10, 2026
859840d
fix(external-mcp-config): replace greedy regex with precise block mat…
nydamon Apr 10, 2026
acba770
fix(control-plane): prioritize fresh wakeups and heal stalled lanes (…
nydamon Apr 10, 2026
f5b6cdd
feat: department labels with hard gate enforcement (#253)
nydamon Apr 10, 2026
af9f3f9
feat: department labels gate + ai-review remediation fix (#254)
nydamon Apr 10, 2026
ca94e4b
fix: retry Codex with a fresh session on context overflow (#256)
nydamon Apr 10, 2026
f0bb8b3
docs(agents): require duplicate check before creating issues (#258)
nydamon Apr 10, 2026
d6f76cc
ci: harden ai review and merge automation (#257)
nydamon Apr 10, 2026
bcb73d3
fix: generate Codex MCP http_headers for Composio (#255)
nydamon Apr 10, 2026
1aa17cd
feat: department-wide dedup gate blocks overlapping issues across dep…
nydamon Apr 10, 2026
9d2fbeb
feat(gates): allow CEO/CTO/QA agents to selectively reopen done tasks…
nydamon Apr 10, 2026
54564a3
feat: core-only required skills + department-wide dedup (#261)
nydamon Apr 11, 2026
6e31321
feat: initiative chain tracking with hierarchy gates, swimlanes, and …
nydamon Apr 11, 2026
111dfa8
chore(lockfile): refresh pnpm-lock.yaml (#264)
nydamon Apr 11, 2026
3014d96
fix: comment out Labels placeholder to match upstream (#266)
nydamon Apr 11, 2026
ac7438c
docs: clarify agent instruction ownership (#263)
nydamon Apr 11, 2026
b76c37a
docs: prefer native managed agent bundles (#265)
nydamon Apr 11, 2026
e044e71
ci: auto-merge docs-only PRs (#267)
nydamon Apr 11, 2026
84fe127
feat: domain-aware QA review — SEO + email deliverability skills (#268)
nydamon Apr 11, 2026
84163a2
fix: searchable initiative picker + require parent for tasks (#269)
nydamon Apr 11, 2026
b4d8153
ci: harden ai review and reconcile stale PRs (#271)
nydamon Apr 11, 2026
b8d0ee4
feat: cancellation replacement gate for initiative tasks (#270)
nydamon Apr 11, 2026
81fc071
feat: add content regression canary for published blog posts (#272)
nydamon Apr 11, 2026
0cd71a9
fix: sort initiatives numerically in analytics dropdown (#273)
nydamon Apr 11, 2026
8e10fa5
feat: enterprise-grade SEO + AI SEO standards for QA domain review (#…
nydamon Apr 12, 2026
e74a33b
fix: cast uuid to text in analytics queries for entity_id comparison …
nydamon Apr 12, 2026
2b4b798
feat: harden initiative creation with role gate + heuristic (#276)
nydamon Apr 12, 2026
71a7737
feat: add Initiative badge on IssueDetail and IssueRow (#277)
nydamon Apr 12, 2026
c1f6f5c
feat: deterministic seo-audit.mjs tool + mandatory agent invocation (…
nydamon Apr 13, 2026
6d7fb54
feat: blog-audit-sweep runs seo-audit on every blog URL in sitemap (#…
nydamon Apr 13, 2026
995a1ce
feat(codex-local): retry with fresh session on context window exhaust…
nydamon Apr 13, 2026
eba1440
fix(release): read version from cli/package.json not cli/package.dev.…
nydamon Apr 13, 2026
4d22cf2
fix(gates): scope browse evidence and delivery gates to CODE_PROJECT_…
nydamon Apr 13, 2026
e4d575f
fix(release): update private cli/package.json version in setVersion (…
nydamon Apr 13, 2026
3f8f172
ci: switch merge-automation to workflow_run trigger (#289)
nydamon Apr 13, 2026
d19dedc
feat(codex-local): add isCodexContextWindowError + retry block (DLD-3…
nydamon Apr 13, 2026
104b179
feat: verification system phase 1 — worker + on-demand endpoint + fro…
nydamon Apr 13, 2026
d6d1f7a
feat(compose): wire BROWSER_TEST_* env vars into server container (#292)
nydamon Apr 13, 2026
d930d2f
fix(verification): floor duration_ms before DB write (int column) (#293)
nydamon Apr 13, 2026
5ebd32a
feat(verification): Phase 2 — api + migration runners + Backend QA Ag…
nydamon Apr 13, 2026
3f7376c
fix(verification): relax route-level spec_path regex for non-url runn…
nydamon Apr 13, 2026
4d023a2
chore(verification): commit Phase 2 smoke test specs (#297)
nydamon Apr 13, 2026
29f360c
fix(inbox): add in_review to inbox-lite query + QA FAIL @mention rule…
nydamon Apr 13, 2026
fc81e80
feat(verification): Phase 3 — 4 new runners + state machine + log-onl…
nydamon Apr 13, 2026
9635eb9
feat(verification): Phase 4 — escalation + board override + gate enfo…
nydamon Apr 13, 2026
5f3f3f7
feat(verification): Phase 5 — LEGACY_QA_GATES flag to disable old gat…
nydamon Apr 13, 2026
8ff82ee
feat(verification): Phase 6 — chaos self-test + flake tracking (#301)
nydamon Apr 13, 2026
bd4e3c4
ci: bridge Merge Automation to Deploy Vultr via workflow_run (#302)
nydamon Apr 13, 2026
b92ece9
feat(verification): Phase 6b — DLD-2796 gates (terminal output, rollu…
nydamon Apr 13, 2026
1795d40
fix(verification): terminal_output_gate requires deliverable referenc…
nydamon Apr 13, 2026
8c6822a
fix(verification): make /verify endpoint agent-callable (Phase 6c) (#…
nydamon Apr 14, 2026
b6ae199
feat(compose): wire verification gate flags into server container env…
nydamon Apr 14, 2026
2037546
feat(ci): AI-suggested version bumps in ai-review workflow (#308)
nydamon Apr 14, 2026
b1a46c7
security: tier-1 upstream sweep (GHSA-68qg-g8mg-6pr7 + 7 more from v2…
nydamon Apr 18, 2026
6017777
chore(lockfile): refresh pnpm-lock.yaml (#310)
nydamon Apr 18, 2026
3b4fecb
docs: resolve outdated DEPLOY AUTO-TRIGGER BROKEN note (#312)
nydamon Apr 18, 2026
aeee6c9
chore(security): scrub hardcoded VPS password + harden .gitignore (#313)
nydamon Apr 18, 2026
1ee3f9f
chore(security): hardening sweep (merge race, drift alerts, log redac…
nydamon Apr 18, 2026
70cf03a
docs: capture 2026-04-18 pipeline fix + hardening state (#315)
nydamon Apr 18, 2026
bc0ed4d
fix(issues): task-bound scope permits read-only access across issues …
nydamon Apr 18, 2026
8a1054e
fix(docker): include hermes-bridge.sh in paperclip-server image (DLD-…
nydamon Apr 18, 2026
e88a8b3
feat(gates): narrow authoring-gate bypass for watchdog agents (#318)
nydamon Apr 18, 2026
68e3a34
feat(agents): add POST /agents/:id/grants for arbitrary permission ke…
nydamon Apr 18, 2026
0a3fde3
feat(gates): authoring-bypass permission waives task-bound scope on w…
nydamon Apr 18, 2026
869ccd6
fix(gates): exclude routine_execution from done_requires_review_cycle…
nydamon Apr 19, 2026
2de78d6
fix(gates): exclude routine_execution from done_requires_review_cycle…
nydamon Apr 19, 2026
612b24d
fix(gates): allow routine_execution self-close from todo → done (DLD-…
nydamon Apr 19, 2026
53cc5b5
fix(gates): allow routine_execution self-close from todo → done (DLD-…
nydamon Apr 19, 2026
eed43bc
fix(task-bound-scope): exclude routine_execution issues from task_bou…
Apr 19, 2026
427aaa9
fix(tests): correct mockImplementation for routine_execution exclusio…
actions-user Apr 19, 2026
28e3070
fix: bypass verification_passed gate for routine_execution (DLD-3323)
Apr 19, 2026
97569f8
fix: skip unpicked_assignment_retrigger when agent has in-flight run …
Apr 20, 2026
4a87b2c
fix: reset gateBlockCount on deliverableType change
Apr 20, 2026
796a912
test: add DLD-3465 regression tests for deliverableType gateBlockCoun…
Apr 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
269 changes: 269 additions & 0 deletions .agents/skills/company-creator/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,269 @@
---
name: company-creator
description: >
Create agent company packages conforming to the Agent Companies specification
(agentcompanies/v1). Use when a user wants to create a new agent company from
scratch, build a company around an existing git repo or skills collection, or
scaffold a team/department of agents. Triggers on: "create a company", "make me
a company", "build a company from this repo", "set up an agent company",
"create a team of agents", "hire some agents", or when given a repo URL and
asked to turn it into a company. Do NOT use for importing an existing company
package (use the CLI import command instead) or for modifying a company that
is already running in Paperclip.
---

# Company Creator

Create agent company packages that conform to the Agent Companies specification.

Spec references:

- Normative spec: `docs/companies/companies-spec.md` (read this before generating files)
- Web spec: https://agentcompanies.io/specification
- Protocol site: https://agentcompanies.io/

## Two Modes

### Mode 1: Company From Scratch

The user describes what they want. Interview them to flesh out the vision, then generate the package.

### Mode 2: Company From a Repo

The user provides a git repo URL, local path, or tweet. Analyze the repo, then create a company that wraps it.

See [references/from-repo-guide.md](references/from-repo-guide.md) for detailed repo analysis steps.

## Process

### Step 1: Gather Context

Determine which mode applies:

- **From scratch**: What kind of company or team? What domain? What should the agents do?
- **From repo**: Clone/read the repo. Scan for existing skills, agent configs, README, source structure.

### Step 2: Interview (Use AskUserQuestion)

Do not skip this step. Use AskUserQuestion to align with the user before writing any files.

**For from-scratch companies**, ask about:

- Company purpose and domain (1-2 sentences is fine)
- What agents they need - propose a hiring plan based on what they described
- Whether this is a full company (needs a CEO) or a team/department (no CEO required)
- Any specific skills the agents should have
- How work flows through the organization (see "Workflow" below)
- Whether they want projects and starter tasks

**For from-repo companies**, present your analysis and ask:

- Confirm the agents you plan to create and their roles
- Whether to reference or vendor any discovered skills (default: reference)
- Any additional agents or skills beyond what the repo provides
- Company name and any customization
- Confirm the workflow you inferred from the repo (see "Workflow" below)

**Workflow — how does work move through this company?**

A company is not just a list of agents with skills. It's an organization that takes ideas and turns them into work products. You need to understand the workflow so each agent knows:

- Who gives them work and in what form (a task, a branch, a question, a review request)
- What they do with it
- Who they hand off to when they're done, and what that handoff looks like
- What "done" means for their role

**Not every company is a pipeline.** Infer the right workflow pattern from context:

- **Pipeline** — sequential stages, each agent hands off to the next. Use when the repo/domain has a clear linear process (e.g. plan → build → review → ship → QA, or content ideation → draft → edit → publish).
- **Hub-and-spoke** — a manager delegates to specialists who report back independently. Use when agents do different kinds of work that don't feed into each other (e.g. a CEO who dispatches to a researcher, a marketer, and an analyst).
- **Collaborative** — agents work together on the same things as peers. Use for small teams where everyone contributes to the same output (e.g. a design studio, a brainstorming team).
- **On-demand** — agents are summoned as needed with no fixed flow. Use when agents are more like a toolbox of specialists the user calls directly.

For from-scratch companies, propose a workflow pattern based on what they described and ask if it fits.

For from-repo companies, infer the pattern from the repo's structure. If skills have a clear sequential dependency (like `plan-ceo-review → plan-eng-review → review → ship → qa`), that's a pipeline. If skills are independent capabilities, it's more likely hub-and-spoke or on-demand. State your inference in the interview so the user can confirm or adjust.

**Key interviewing principles:**

- Propose a concrete hiring plan. Don't ask open-ended "what agents do you want?" - suggest specific agents based on context and let the user adjust.
- Keep it lean. Most users are new to agent companies. A few agents (3-5) is typical for a startup. Don't suggest 10+ agents unless the scope demands it.
- From-scratch companies should start with a CEO who manages everyone. Teams/departments don't need one.
- Ask 2-3 focused questions per round, not 10.

### Step 3: Read the Spec

Before generating any files, read the normative spec:

```
docs/companies/companies-spec.md
```

Also read the quick reference: [references/companies-spec.md](references/companies-spec.md)

And the example: [references/example-company.md](references/example-company.md)

### Step 4: Generate the Package

Create the directory structure and all files. Follow the spec's conventions exactly.

**Directory structure:**

```
<company-slug>/
├── COMPANY.md
├── agents/
│ └── <slug>/AGENTS.md
├── teams/
│ └── <slug>/TEAM.md (if teams are needed)
├── projects/
│ └── <slug>/PROJECT.md (if projects are needed)
├── tasks/
│ └── <slug>/TASK.md (if tasks are needed)
├── skills/
│ └── <slug>/SKILL.md (if custom skills are needed)
└── .paperclip.yaml (Paperclip vendor extension)
```

**Rules:**

- Slugs must be URL-safe, lowercase, hyphenated
- COMPANY.md gets `schema: agentcompanies/v1` - other files inherit it
- Agent instructions go in the AGENTS.md body, not in .paperclip.yaml
- Skills referenced by shortname in AGENTS.md resolve to `skills/<shortname>/SKILL.md`
- For external skills, use `sources` with `usage: referenced` (see spec section 12)
- Do not export secrets, machine-local paths, or database IDs
- Omit empty/default fields
- For companies generated from a repo, add a references footer at the bottom of COMPANY.md body:
`Generated from [repo-name](repo-url) with the company-creator skill from [Paperclip](https://github.com/paperclipai/paperclip)`

**Reporting structure:**

- Every agent except the CEO should have `reportsTo` set to their manager's slug
- The CEO has `reportsTo: null`
- For teams without a CEO, the top-level agent has `reportsTo: null`

**Writing workflow-aware agent instructions:**

Each AGENTS.md body should include not just what the agent does, but how they fit into the organization's workflow. Include:

1. **Where work comes from** — "You receive feature ideas from the user" or "You pick up tasks assigned to you by the CTO"
2. **What you produce** — "You produce a technical plan with architecture diagrams" or "You produce a reviewed, approved branch ready for shipping"
3. **Who you hand off to** — "When your plan is locked, hand off to the Staff Engineer for implementation" or "When review passes, hand off to the Release Engineer to ship"
4. **What triggers you** — "You are activated when a new feature idea needs product-level thinking" or "You are activated when a branch is ready for pre-landing review"

This turns a collection of agents into an organization that actually works together. Without workflow context, agents operate in isolation — they do their job but don't know what happens before or after them.

### Step 5: Confirm Output Location

Ask the user where to write the package. Common options:

- A subdirectory in the current repo
- A new directory the user specifies
- The current directory (if it's empty or they confirm)

### Step 6: Write README.md and LICENSE

**README.md** — every company package gets a README. It should be a nice, readable introduction that someone browsing GitHub would appreciate. Include:

- Company name and what it does
- The workflow / how the company operates
- Org chart as a markdown list or table showing agents, titles, reporting structure, and skills
- Brief description of each agent's role
- Citations and references: link to the source repo (if from-repo), link to the Agent Companies spec (https://agentcompanies.io/specification), and link to Paperclip (https://github.com/paperclipai/paperclip)
- A "Getting Started" section explaining how to import: `paperclipai company import --from <path>`

**LICENSE** — include a LICENSE file. The copyright holder is the user creating the company, not the upstream repo author (they made the skills, the user is making the company). Use the same license type as the source repo (if from-repo) or ask the user (if from-scratch). Default to MIT if unclear.

### Step 7: Write Files and Summarize

Write all files, then give a brief summary:

- Company name and what it does
- Agent roster with roles and reporting structure
- Skills (custom + referenced)
- Projects and tasks if any
- The output path

## .paperclip.yaml Guidelines

The `.paperclip.yaml` file is the Paperclip vendor extension. It configures adapters and env inputs per agent.

### Adapter Rules

**Do not specify an adapter unless the repo or user context warrants it.** If you don't know what adapter the user wants, omit the adapter block entirely — Paperclip will use its default. Specifying an unknown adapter type causes an import error.

Paperclip's supported adapter types (these are the ONLY valid values):
- `claude_local` — Claude Code CLI
- `codex_local` — Codex CLI
- `opencode_local` — OpenCode CLI
- `pi_local` — Pi CLI
- `cursor` — Cursor
- `gemini_local` — Gemini CLI
- `openclaw_gateway` — OpenClaw gateway

Only set an adapter when:
- The repo or its skills clearly target a specific runtime (e.g. gstack is built for Claude Code, so `claude_local` is appropriate)
- The user explicitly requests a specific adapter
- The agent's role requires a specific runtime capability

### Env Inputs Rules

**Do not add boilerplate env variables.** Only add env inputs that the agent actually needs based on its skills or role:
- `GH_TOKEN` for agents that push code, create PRs, or interact with GitHub
- API keys only when a skill explicitly requires them
- Never set `ANTHROPIC_API_KEY` as a default empty env variable — the runtime handles this

Example with adapter (only when warranted):
```yaml
schema: paperclip/v1
agents:
release-engineer:
adapter:
type: claude_local
config:
model: claude-sonnet-4-6
inputs:
env:
GH_TOKEN:
kind: secret
requirement: optional
```

Example — only agents with actual overrides appear:
```yaml
schema: paperclip/v1
agents:
release-engineer:
inputs:
env:
GH_TOKEN:
kind: secret
requirement: optional
```

In this example, only `release-engineer` appears because it needs `GH_TOKEN`. The other agents (ceo, cto, etc.) have no overrides, so they are omitted entirely from `.paperclip.yaml`.

## External Skill References

When referencing skills from a GitHub repo, always use the references pattern:

```yaml
metadata:
sources:
- kind: github-file
repo: owner/repo
path: path/to/SKILL.md
commit: <full SHA from git ls-remote or the repo>
attribution: Owner or Org Name
license: <from the repo's LICENSE>
usage: referenced
```

Get the commit SHA with:

```bash
git ls-remote https://github.com/owner/repo HEAD
```

Do NOT copy external skill content into the package unless the user explicitly asks.
Loading
Loading