Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
916 commits
Select commit Hold shift + click to select a range
8fa4b6a
added a script to generate company assets
Mar 23, 2026
2e76a2a
Add routine support to recurring task portability
Mar 23, 2026
c41dd2e
Reduce portability warning fan-out
Mar 23, 2026
220946b
Default recurring task exports to checked
Mar 23, 2026
ac376d0
Add TUI import summaries
Mar 23, 2026
a339b48
fix: dedupe company skill inventory refreshes
Mar 23, 2026
1246ccf
Add nested import picker
Mar 23, 2026
06f5632
Polish import adapter defaults
Mar 23, 2026
c02dc73
Confirm company imports after preview
Mar 23, 2026
2a6e1cf
Fix imported GitHub skill file paths
Mar 23, 2026
56a39fe
Add importing & exporting company guide
Mar 23, 2026
66d84cc
Add companies.sh import wrapper
Mar 23, 2026
9786ebb
Revert "Add companies.sh import wrapper"
Mar 23, 2026
dcead97
Fix company zip imports
Mar 23, 2026
f9927bd
Disable imported timer heartbeats
Mar 23, 2026
b5fde73
Open imported company after import
Mar 23, 2026
159c5b4
Preserve sidebar order in company portability
Mar 23, 2026
6f1ce3b
Document imported heartbeat defaults
Mar 23, 2026
a3f568d
Improve generated company org chart assets
Mar 23, 2026
c3f4e18
Keep sidebar ordering with portability branch
Mar 23, 2026
6960ab1
Address Greptile review on UI polish PR
Mar 23, 2026
55b26ed
Address Greptile review on agent runtime PR
Mar 23, 2026
92c29f2
Address Greptile review on portability PR
Mar 23, 2026
02dd454
fix: comprehensive postgres.js Date parameter binding in heartbeat se…
nydamon Mar 23, 2026
53feb33
fix: critical postgres.js Date parameter binding in heartbeat startup…
nydamon Mar 23, 2026
cbb3883
fix: resolve postgres.js Date parameter binding in cost events and ex…
nydamon Mar 23, 2026
7a62bd4
Merge pull request #66 from Viraforge/fix/heartbeat-startup-recovery
nydamon Mar 23, 2026
dd1d9be
fix(server): check MIGRATION_AUTO_APPLY before MIGRATION_PROMPT
devinfoley Mar 23, 2026
343136b
fix: resolve postgres.js Date parameter binding in execution-workspac…
nydamon Mar 23, 2026
bdd645d
Merge pull request #67 from Viraforge/fix/heartbeat-startup-recovery
nydamon Mar 23, 2026
b341b79
fix(heartbeat-dependencies): systematically fix postgres.js Date para…
nydamon Mar 23, 2026
7576c5e
Update ui/src/pages/Auth.tsx
cryppadotta Mar 24, 2026
2cc2d44
Remove lockfile changes from UI polish PR
Mar 24, 2026
36574bd
chore: add GitHub PR template
devinfoley Mar 24, 2026
5222a49
chore: expand thinking path placeholder for depth
devinfoley Mar 24, 2026
85d2c54
fix(ci): refresh lockfile in PR jobs
Mar 24, 2026
22067c7
revert: drop PR workflow lockfile refresh
Mar 24, 2026
fa084e1
Merge pull request #1653 from paperclipai/pr/pap-795-ui-polish
cryppadotta Mar 24, 2026
4096db8
chore(lockfile): refresh pnpm-lock.yaml (#1667)
github-actions[bot] Mar 24, 2026
87b3cac
Address valid Greptile portability follow-ups
Mar 24, 2026
c8f8f67
fix: address latest Greptile runtime review
Mar 24, 2026
f2637e6
Merge pull request #1654 from paperclipai/pr/pap-795-agent-runtime
cryppadotta Mar 24, 2026
eeb7e1a
Merge pull request #1655 from paperclipai/pr/pap-795-company-portability
cryppadotta Mar 24, 2026
e4e5b61
Fix imported agent bundle frontmatter leakage
Mar 24, 2026
a346ad2
Fix instructions tab state on agent switch
Mar 24, 2026
7c54b6e
Extract mention-aware link node helper and add tests
Mar 24, 2026
08bdc3d
Handle nested imported AGENTS edge case
Mar 24, 2026
a3f4e6f
Preserve prompts panel width on agent switch
Mar 24, 2026
f92d2c3
Merge pull request #1668 from paperclipai/pr/pap-803-imported-agent-f…
cryppadotta Mar 24, 2026
70bd55a
Merge pull request #1669 from paperclipai/pr/pap-803-agent-instructio…
cryppadotta Mar 24, 2026
32c76e0
Merge pull request #1670 from paperclipai/pr/pap-803-mention-aware-li…
cryppadotta Mar 24, 2026
8ae954b
Merge pull request #1666 from paperclipai/chore/pr-template
devinfoley Mar 24, 2026
fd4df4d
fix(docker): add plugin-sdk to Dockerfile build
devinfoley Mar 24, 2026
59e29af
Merge pull request #1672 from paperclipai/fix/docker-plugin-sdk
devinfoley Mar 24, 2026
730a67b
fix(issues): decode HTML entities in @mention tokens instead of strip…
amit221 Mar 24, 2026
53f0988
Merge origin/master into fix/issue-1255
amit221 Mar 24, 2026
2735ef1
fix(issues): decode @mention entities without lockfile or new deps
amit221 Mar 24, 2026
98a5e28
test(issues): document Greptile mid-token case vs old strip behavior
amit221 Mar 24, 2026
14ffbe3
test(issues): shorten mid-token entity test comment
amit221 Mar 24, 2026
4e19f73
fix: convert all remaining Date objects to ISO strings for postgres.j…
nydamon Mar 24, 2026
93d02dc
revert: remove incorrect .toISOString() conversions that caused froze…
claude Mar 24, 2026
515bb24
Merge pull request #71 from Viraforge/claude/fix-frozen-agents-88mhf
nydamon Mar 24, 2026
e9f8799
Merge branch 'master' into fix/process-lost-retry-timestamp
nydamon Mar 24, 2026
35462b5
Merge pull request #72 from Viraforge/fix/process-lost-retry-timestamp
nydamon Mar 24, 2026
827b36b
fix(heartbeat): convert Date to ISO string for postgres.js parameter …
nydamon Mar 24, 2026
81afb5a
Merge pull request #73 from Viraforge/fix/heartbeat-process-lost-retry
nydamon Mar 24, 2026
a9dcea0
fix(codex): check native auth before warning about missing API key
devinfoley Mar 24, 2026
5561a9c
Improve CLI API connection errors
Mar 24, 2026
67841a0
Remove noisy "Loaded agent instructions file" log from all adapters
Mar 24, 2026
c4838cc
Render join requests inline in inbox like approvals and other work items
Mar 24, 2026
5602576
Fix embedded Postgres initdb failure in Docker slim containers
Mar 24, 2026
eb73fc7
Seed onboarding project and issue goal context
Mar 24, 2026
44fbf83
Preserve task assignment grants for joined agents
Mar 24, 2026
3447e20
Fix agent mention pill vertical misalignment with project mention pill
Mar 24, 2026
06b85d6
test(codex): add coverage for native auth detection in environment probe
devinfoley Mar 24, 2026
4ff460d
Fix embedded-postgres patch env lookup
Mar 24, 2026
f352f3f
Force embedded-postgres messages locale to C
Mar 24, 2026
4b66837
Regenerate embedded-postgres vendor patch
Mar 24, 2026
58c511a
test(codex): isolate auth tests from host OPENAI_API_KEY
devinfoley Mar 24, 2026
da02ae1
fix(server): serialize all timestamp values to ISO strings for postgr…
nydamon Mar 24, 2026
331e1f0
Merge pull request #1704 from paperclipai/pr/pap-817-cli-api-connecti…
cryppadotta Mar 24, 2026
de5985b
Merge pull request #1705 from paperclipai/pr/pap-817-remove-instructi…
cryppadotta Mar 24, 2026
6250d53
Merge pull request #1706 from paperclipai/pr/pap-817-inline-join-requ…
cryppadotta Mar 24, 2026
8bebc95
Merge pull request #1707 from paperclipai/pr/pap-817-embedded-postgre…
cryppadotta Mar 24, 2026
04a0708
chore(lockfile): refresh pnpm-lock.yaml (#1712)
github-actions[bot] Mar 24, 2026
add6ca5
Merge pull request #1709 from paperclipai/pr/pap-817-join-request-tas…
cryppadotta Mar 24, 2026
d38d5e1
Merge pull request #1710 from paperclipai/pr/pap-817-agent-mention-pi…
cryppadotta Mar 24, 2026
03f44d0
Merge pull request #1708 from paperclipai/pr/pap-817-onboarding-goal-…
cryppadotta Mar 24, 2026
cce6361
Merge pull request #74 from Viraforge/fix/timestamp-serialization
nydamon Mar 24, 2026
0ce4134
fix(codex): use actual CODEX_HOME in auth detail message
devinfoley Mar 24, 2026
bde7d54
fix(server): fix ALL timestamp fields for postgres.js parameter bindi…
nydamon Mar 24, 2026
53356cd
chore: retrigger CI checks
nydamon Mar 24, 2026
c333e6a
Merge pull request #77 from Viraforge/fix/timestamp-serialization
nydamon Mar 24, 2026
d35a039
fix(timestamps): revert incorrect .toISOString() type casts that brea…
nydamon Mar 24, 2026
4da8329
test(codex): move OPENAI_API_KEY stub to beforeEach for all tests
devinfoley Mar 24, 2026
4eecd23
fix(codex): use codexHomeDir() fallback for accurate auth detail path
devinfoley Mar 24, 2026
2858bb4
fix(deploy): add missing PAPERCLIP_HOME and ANTHROPIC_AUTH_TOKEN to d…
nydamon Mar 24, 2026
1696ff0
fix(codex): use path.join for auth detail message path
devinfoley Mar 24, 2026
fea892c
Merge pull request #1702 from paperclipai/fix/codex-auth-check
devinfoley Mar 24, 2026
ff8b839
Merge pull request #1658 from paperclipai/fix/migration-auto-apply-pr…
devinfoley Mar 24, 2026
0a952dc
fix(docker): copy patches directory into deps stage
devinfoley Mar 24, 2026
8a528aa
fix(deploy): harden startup log check and handle missing AGENTS.md gr…
Mar 24, 2026
858716f
fix(claude-local): correct onLog call signature and type error in ENO…
Mar 24, 2026
b1d12d2
Merge pull request #1730 from paperclipai/fix/docker-patches
devinfoley Mar 24, 2026
cbca599
Merge pull request #1363 from amit221/fix/issue-1255
devinfoley Mar 25, 2026
31753d3
fix: validate session ID is UUID before passing to Claude --resume
Mar 25, 2026
3e1ece5
Merge pull request #81 from Viraforge/fix/deploy-startup-log-check
nydamon Mar 25, 2026
f29af88
Merge branch 'master' into fix/dld-889-session-id-validation
nydamon Mar 25, 2026
f29c1dc
Merge pull request #82 from Viraforge/fix/dld-889-session-id-validation
nydamon Mar 25, 2026
9637351
docs(release): add v2026.325.0 changelog
Mar 25, 2026
db3883d
Merge pull request #1748 from paperclipai/pr/pap-849-release-changelog
cryppadotta Mar 25, 2026
41db8d4
fix(shared): add gemini_local to AGENT_ADAPTER_TYPES constant
nydamon Mar 25, 2026
14d2533
Merge pull request #83 from Viraforge/fix/add-gemini-adapter-type
nydamon Mar 25, 2026
fbd2b6d
fix(deploy): replace empty ANTHROPIC_AUTH_TOKEN with CLAUDE_CODE_OAUT…
nydamon Mar 25, 2026
57bb52b
Merge pull request #84 from Viraforge/fix/claude-auth-token
nydamon Mar 25, 2026
e50554f
chore(scope): revert @paperclipai_dld to @paperclipai for upstream me…
nydamon Mar 25, 2026
bf19318
Merge tag 'v2026.325.0' into upgrade/v2026.325.0
nydamon Mar 25, 2026
1daab80
fix(docker): add .npmrc and patches/ to Dockerfile.vps deps stage
nydamon Mar 25, 2026
3381914
docs: update stale npm scope references after @paperclipai revert
nydamon Mar 25, 2026
62ca2cb
ci(pr-policy): exempt upgrade/* branches from lockfile edit block
Mar 25, 2026
a510210
ci(pr): exempt upgrade/* branches from lockfile edit block
Mar 25, 2026
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
550d6fd
fix(heartbeat): recoverProcessLostAgents defensive recovery paths (DL…
actions-user Apr 21, 2026
2bb10b2
fix(heartbeat): skip routine_execution tasks in sweepUnpickedAssignme…
actions-user Apr 21, 2026
2526d9e
fix(routines): add origin-only fallback in findLiveExecutionIssue and…
Apr 28, 2026
e866356
fix(heartbeat): remove duplicate cancelQueuedRunsForTerminalIssues, a…
Apr 28, 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