Files
mattpocock-skills-opencode/TODO.md
T
2026-10-14 12:35:47 +02:00

4.1 KiB

TODO

Persistent task list. Check off + note outcome; move done items to the bottom log with date. State: .opencode/state/status.md. Design: docs/architecture.md.

Phase 0 — analysis

  • Inspect repo, fastcrw reference, pocock-agents, upstream skills, OpenCode v2 plugin + agent docs
  • Architecture (docs/architecture.md §1)
  • Plugin API requirements (§3)
  • Agent architecture (§4)
  • Sync strategy (§5)
  • Gitea Actions design (§6)
  • Testing strategy (§7)
  • Phased plan (§9)
  • Skill inventory + classification matrix → docs/skill-mapping.md + .opencode/state/classification.json (38 skills analyzed from SKILL.md sources)
  • Commit phase-0 docs

Phase 1 — plugin package

  • 1.1 scaffold package (@haylan/opencode-pocock confirmed by owner 2026-10-14)
  • 1.2 scripts/sync-upstream.ts + vendor upstream/ @49dd158 + state update
  • 1.3 scripts/generate.ts: manifest.json + skills/ output + unit tests (parser, manifest)
  • 1.4 src/index.ts plugin: skill injection (frontmatter-stripped content), options validation, agent-staleness warning + fake-ctx integration tests (Skill.Info verified: cast needed for effect-branded fields; runtime PASS)
  • 1.5 bin init (copy agents, -g global, no silent overwrite, .pocock-version stamp) + tests
  • 1.6 agents/: pocock + pocock-worker + pocock-reviewer, V2-native frontmatter; drift tests (upstream names, worker skill allow-list, reviewer read-only, no subagent recursion)
  • 1.7 scripts/release.ts + version.ts adapted from fastcrw + unit tests
  • 1.8 .gitea/workflows/: check.yml, nightly.yml, smoke.yml (dispatch); scripts/smoke.ts — PASS on v2.0.29 (plugin active, 31 skills, 16 hidden, agents + permissions decoded)
  • 1.9 local runtime verification → docs/runtime-checks.md (findings folded into README/AGENTS)
  • 1.10 manual release 0.1.0 to Gitea registry; verify install-from-registry by package name
  • ask repo admin to add Gitea secret PACKAGE_TOKEN (write:package + write:repository)

Phase 2 — conversion

  • 2.1 deep per-skill analysis → .opencode/state/classification.json + docs/skill-mapping.md (done in phase 0; generator must regenerate mapping doc from classification.json — keep in 1.3 scope)
  • 2.2 guardrails plugin hook (opt-in, tool.hook execute.before on shell) + tests — shipped in Phase 1.4 (src/guardrails.ts); pattern list faithful to upstream block-dangerous-git.sh
  • 2.3 pocock-reviewer: CONFIRMED by analysis (D8) — implemented in 1.6 with read-only permissions (edit/subagent/webfetch deny, git-read shell allow-list, skill allow code-review)
  • 2.4 orchestrator V2 flow wiring — done in 1.6: agent text covers background AND batch dispatch; slash UX + /tmp default documented in README from runtime findings
  • 2.5 per-skill regression checks (drift suite exists; add manual token-spending orchestration run: fixture spec + 3 tickets like pocock-agents smoke) + record in docs/runtime-checks.md
  • 2.6 README usage guide + finalize skill-mapping (matrix generated from classification.json)
  • 2.7 one week of green nightlies -> declare stable (BLOCKED on PACKAGE_TOKEN secret)

Open questions

  • Exact Skill.Info/editor.add field set RESOLVED 2026-10-14 (@opencode/plugin@2.0.29): {id, name, description?, autoinvoke?, path, content}; no slash in Info.
  • V2 background subagents: still env-gated? Affects orchestrator dispatch loop wording only (agent text covers both modes) — low priority, observe at 2.5.
  • Slash exposure for injected skills RESOLVED: none (runtime check 2026-10-14); README documents file-based alternatives.
  • Package name/scope: CONFIRMED @haylan/opencode-pocock (owner, 2026-10-14).
  • Does nightly runner have network access to github.com for upstream fetch? (1.8 — fallback: mirror upstream to Gitea and sync from the mirror.) Verify on first nightly run.
  • Install-from-registry by package name (npm-name plugin entry resolving through exports) — verify at 1.10; local dir entry verified.

Done log

  • 2026-10-14: phase-0 analysis docs written (AGENTS.md, state/, docs/architecture.md, TODO.md).