Repository navigation
develop mode: skills for every engine, the campaign walk unit, honest degradation, bounded gate waits, spec-slices adoption #1949
Description
From the rd-system v2.1 develop campaign ledger (vault-aaron/sessions/session-20261026-rd-system-v2-1.md §7, findings F-dev-1…13). These are the fixes that make develop mode work as its card says.
1. Skills reach every engine, not just extension-spawned ones (F-dev-1, F-dev-4, F-dev-10)
A plain opencode session (started from a terminal, not by the extension) loads the staged agent cards from ~/.config/opencode/agents/ but no amicode skills. Skills only arrive through the extension-generated config's skills.paths. So the develop card's first action ("invoke director-core, then develop") and the implementer's implement-issue fail with "Skill not found".
Fix: stage the public/entitled skill set to opencode's native user skill directory, next to the agent staging, using the same staging code and receipts. Then any engine on the machine resolves them. Verify the directory opencode reads (~/.config/opencode/skill[s]/<name>/SKILL.md) against the engine source.
2. The walk's unit for a campaign PRD (F-dev-9)
The develop skill and card require "one integration branch + one draft PR per parent issue" and "no per-slice PRs in orchestrated mode". When the parent is a campaign PRD (e.g. #1820: 50 slices across 5 repos over weeks), that contradicts continuous charter merges (v2.1 A12) and isn't workable across repos.
Fix: state the rule. When a parent is a campaign PRD (it has amico-spec-slices children, or spans more than one repo), the unit is the tier/wave per repo. Each slice is a unit of one, merged onto the release train (lane/<version>, A14) when it needs a live test, else onto main. The integration-branch rule stays for ordinary feature parents. Update skills/develop/SKILL.md, modes/develop/card.md, and the copy in agents/develop.md (keep them in sync; the parity tests will say how).
3. Honest tool degradation (F-dev-2)
amicode_session / amicode_workspace are absent in this engine binding, yet the card says "never call git worktree add directly". Fix: the card's degradation paragraph names the fallback explicitly. Director-managed git worktree add/remove is used, each worktree is recorded in the ledger, and it is removed after merge.
4. Deploy and gate hygiene (F-dev-11, F-dev-13, #1943)
ops/hub/deploy-gate.shsmoke(): replacekill; waitwith TERM, a bounded wait (10s), then KILL. A hung shutdown is a named smoke FAIL. This is the gate half of Engine ignores SIGTERM after an instance boots; deploy-gate's boot smoke then hangs forever on 'wait' #1944 and must not hang again.- Untrack
ops/hub/__pycache__/and gitignore__pycache__/(closes ops/hub/__pycache__/*.pyc are tracked in git — every hub worktree goes dirty and deploy-dist.sh refuses #1943). - The develop skill's deploy section: a CLI change ships only once the pinned CLI is refreshed (
ops/install-cli-pin.sh --dist packages/amico-run/dist). Put that in the release checklist.
5. amico spec slices can reference an existing issue (F-dev-7)
A plan row whose step text contains (#N) or repo#N as its first issue reference adopts that issue instead of filing a new one. It adds the provenance marker by editing the body, links the sub-issue, and sets the edges. Test this with the fake gh layer.
Acceptance
- A plain
opencodeon a machine with the extension installed listsdirector-core,develop,implement-issue, andtdd(test the staging; live check by the director). - Card, skill, and agent copies are in sync, and the existing parity and skills lint tests pass.
- A deploy-gate fixture with a server that ignores SIGTERM fails the smoke within about 15s instead of hanging.
git ls-files ops/hub/__pycache__is empty.- The spec-slices adopt test passes, and a second run is still idempotent.
Activity
Merge pull request #1952 from harmoniqs/v311-1949b
Merge pull request #1951 from harmoniqs/v311-1949a
aarontrowbridge commentedon Oct 29, 2026
Closing as done.
Evidence:
Two merged PRs together implement every section: #1951 covers §1–3 and #1952 covers §4–5. The lane/0.3.11 PR #1953 is still unmerged and
ops/hub/__pycache__still shows on the default branch, so a reviewer should confirm the lane has reached main.— notturno backlog triage (amicissimo#532)