Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
826 commits
Select commit Hold shift + click to select a range
99eb317
fix: harden routine dispatch and permissions
Mar 20, 2026
da9b31e
fix(ci): use --frozen-lockfile in e2e workflow
devinfoley Mar 20, 2026
9093cfb
fix: address greptile routine review
Mar 20, 2026
8dc98db
fix: close remaining routine merge blockers
Mar 20, 2026
df64530
test: add routines api end-to-end coverage
Mar 20, 2026
a46dc46
Merge pull request #1351 from paperclipai/paperclip-routines
cryppadotta Mar 20, 2026
5e414ff
fix: add pi_local to isLocalAdapter and ENABLED_INVITE_ADAPTERS guards
lucas-stellet Mar 20, 2026
0ec79d4
Add worktree history merge command
Mar 20, 2026
220a5ec
Add project mapping prompts for worktree imports
Mar 20, 2026
28a5f85
Add worktree source discovery commands
Mar 20, 2026
ad011fb
Clarify worktree import source and target flags
Mar 20, 2026
cff06c9
Add issue titles to worktree merge preview
Mar 20, 2026
be91175
Default comment reopen to checked
Mar 20, 2026
73ada45
Import worktree documents and attachments
Mar 20, 2026
fb63d61
Skip missing worktree attachment objects
Mar 20, 2026
54b99d5
Search sibling storage roots for attachments
Mar 20, 2026
e37e9df
fix: address greptile review — add pi_local to effectiveAdapterComman…
lucas-stellet Mar 20, 2026
13ca33a
Merge pull request #1383 from paperclipai/fix/codex-managed-home-foll…
cryppadotta Mar 20, 2026
da2c159
fix: restore post-merge route verification
Mar 20, 2026
ae6aac0
Merge pull request #1384 from paperclipai/fix/codex-managed-home-foll…
cryppadotta Mar 20, 2026
d47ec56
fix: renumber worktree merge history migrations
Mar 20, 2026
f480329
Merge pull request #1385 from paperclipai/fix/worktree-merge-history-…
cryppadotta Mar 20, 2026
036e2b5
Merge pull request #1326 from paperclipai/ci/pr-e2e-tests
devinfoley Mar 20, 2026
ebe0035
Merge pull request #1316 from paperclipai/fix/lockfile-refresh-autome…
devinfoley Mar 20, 2026
2fdf953
ci: consolidate PR workflows into a single file
devinfoley Mar 20, 2026
93ba783
Merge pull request #1331 from paperclipai/ci/consolidate-pr-workflows
devinfoley Mar 21, 2026
49c1b8c
Merge branch 'master' into feat/evals-promptfoo-bootstrap
cryppadotta Mar 21, 2026
640f527
Merge pull request #832 from mvanhorn/feat/evals-promptfoo-bootstrap
cryppadotta Mar 21, 2026
e3e7a92
Merge pull request #552 from mvanhorn/osc/129-feat-filter-issues-by-p…
cryppadotta Mar 21, 2026
5bf6fd1
Merge pull request #551 from mvanhorn/osc/272-fix-comment-image-attac…
cryppadotta Mar 21, 2026
fdb20d5
Merge pull request #550 from mvanhorn/osc/529-fix-missing-agents-md-f…
cryppadotta Mar 21, 2026
f8bcfb4
fix(cursor-adapter): change default model from auto to composer-2
nydamon Mar 21, 2026
cfa1a5c
fix(db): add missing indexes for heartbeat_runs and cost_events
nydamon Mar 21, 2026
1bb7f69
fix: log SIGTERM/SIGINT and isolate plugin worker process groups (#54)
nydamon Mar 22, 2026
28dbce5
feat(vps): nginx edge on :80 for Cloudflare Free; fix resolvePathValu…
nydamon Mar 22, 2026
a013f8f
fix(vps): pass PAPERCLIP_ALLOWED_HOSTNAMES for IP + Cloudflare hostna…
nydamon Mar 22, 2026
6ae6c00
fix(opencode_local): repair AGENT_HOME and ignore corrupt adapter cwd…
nydamon Mar 22, 2026
a7c7887
fix(server): union-merge allowed hostnames from file, env, and PUBLIC…
nydamon Mar 22, 2026
4ebc12a
docs(api): fix goal status value and document checkout re-claim pattern
aronprins Mar 23, 2026
f42aebd
docs(api): add Routines reference
aronprins Mar 23, 2026
f87db64
docs(api/routines): address three review findings
aronprins Mar 23, 2026
8b4850a
Merge pull request #1622 from aronprins/docs/api-routines-and-fixes
cryppadotta Mar 23, 2026
e204e03
Add CLI company import export e2e test
Mar 22, 2026
5a73556
Use positional source arg for company import
Mar 23, 2026
e6df9fa
Support GitHub shorthand refs for company import
Mar 23, 2026
5dfdbe9
Add merge-history project import option
Mar 21, 2026
f23d611
Route existing-company CLI imports through safe routes
Mar 23, 2026
e680112
Merge pull request #1632 from paperclipai/pr/pap-768-merge-history
cryppadotta Mar 23, 2026
1376fc8
Merge pull request #1631 from paperclipai/pr/pap-768-company-import-s…
cryppadotta Mar 23, 2026
37c2c4a
Add browser-based board CLI auth flow
Mar 23, 2026
298713f
Fix duplicate auth login company flag
Mar 23, 2026
01b6b7e
fix: make cli auth migration 0044 idempotent
Mar 23, 2026
7f9a764
Address Greptile review on board CLI auth
Mar 23, 2026
080c9e4
Merge pull request #1635 from paperclipai/pr/pap-768-board-cli-auth
cryppadotta Mar 23, 2026
09acb9f
feat(heartbeat): auto-retry process_lost failures (#59)
viraforge-ai Mar 23, 2026
66ac53b
Optimize Docker build: parallel tools stage (#61)
viraforge-ai Mar 23, 2026
119dd0e
Merge pull request #542 from albttx/dockerize
cryppadotta Mar 23, 2026
b5610f6
Merge pull request #1382 from lucas-stellet/fix/pi-local-missing-from…
cryppadotta Mar 23, 2026
3a79d94
Merge pull request #1380 from DanielSousa/feature/change-reports-to
cryppadotta Mar 23, 2026
16ad3ee
fix(server): serialize Date objects to ISO strings for postgres.js pa…
nydamon Mar 23, 2026
af5e086
Merge pull request #62 from Viraforge/fix/allowed-hostnames-union
nydamon Mar 23, 2026
ef0846e
Remove priority icon from issue rows across the app
Mar 21, 2026
0b9f003
Increase monospace font size and add dark mode background for inline …
Mar 21, 2026
f8dd4dc
Reduce monospace font size from 1.1em to 1em
Mar 21, 2026
cd7c6ee
Fix login form not being detected by 1Password
Mar 21, 2026
8232456
Fix markdown mention chips
Mar 21, 2026
49ace2f
Allow custom markdown mention links in editor
Mar 21, 2026
0e8e162
Fix mention pills by allowing custom URL schemes in Lexical LinkNode
Mar 21, 2026
db42adf
Make agent instructions tab responsive on mobile
Mar 22, 2026
bd0b760
Fix atomic markdown mention deletion
Mar 22, 2026
42c8d9b
Fix oversized toggle switches on mobile
Mar 22, 2026
e61f00d
Add missing data-slot="toggle" to Routines toggle buttons
Mar 22, 2026
bdecb1b
Sort agents alphabetically by name in all views
Mar 22, 2026
0b960b0
Suppress same-page issue toasts
Mar 22, 2026
e73bc81
fix: prevent documents row from causing horizontal scroll on mobile
Mar 22, 2026
d73c8df
fix: improve pill contrast by using WCAG contrast ratios on composite…
Mar 23, 2026
e0d2c4b
Ignore .paperclip in dev restart detection
Mar 21, 2026
5a1e17f
Fix issue workspace reuse after isolation
Mar 21, 2026
02c779b
Use issue participation for agent history
Mar 21, 2026
eac3f3f
Honor explicit failed-run session resume
Mar 21, 2026
75c7eb3
Ignore test-only paths in dev restart tracking
Mar 22, 2026
a315838
fix: preserve agent instructions on adapter switch
Mar 22, 2026
1adfd30
fix: recover managed agent instructions from disk
Mar 23, 2026
3b2cb3a
Show all companies' agents on instance heartbeats page
Mar 23, 2026
0bb1ee3
Recover agent instructions from disk
Mar 23, 2026
43b21c6
Ignore .paperclip paths in restart tracking
Mar 23, 2026
2daae75
Include all agents on heartbeats page regardless of interval config
Mar 23, 2026
c0c1fd1
Add "Disable All" button to heartbeats settings page
Mar 23, 2026
19154d0
Clarify Codex instruction sources
Mar 23, 2026
d8b4086
fix providers
Mar 23, 2026
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
6d98a86
feat(platform): B1+B2+B4 — run ping endpoint, last_heartbeat_at schem…
Mar 26, 2026
7020e4a
feat(platform): QA gate plugin — block done transitions without @qa-a…
Mar 27, 2026
ff08b4f
fix(plugins): enable route handles installed status via lifecycle.load()
Mar 27, 2026
f642596
fix(dockerfile): add qa-gate plugin to Dockerfile.vps deps and build
nydamon Mar 27, 2026
78fdabb
feat(DLD-1380): allow CEO agent to enable/disable plugins
TzuhekBareket Mar 28, 2026
e746986
fix(qa-gate): bypass non-code operational closeouts
TzuhekBareket Mar 28, 2026
0fccfe5
fix(qa-gate): close QA blockers for DLD-1431
TzuhekBareket Mar 28, 2026
f75843e
feat(DLD-1452): urlKey-based agent mentions + version bump + TS error…
TzuhekBareket Mar 29, 2026
a94ecc8
feat(DLD-1456): add manager-visible runtime recovery endpoints for br…
TzuhekBareket Mar 30, 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