Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions .agents/pm/chores/pm-3y56.toon
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ status: closed
priority: 3
tags[4]: dedup,docs,plan,plugins
created_at: "2026-05-22T19:18:21.800Z"
updated_at: "2026-09-19T08:39:23.778Z"
updated_at: "2026-09-27T07:45:18.538Z"
closed_at: "2026-05-25T00:22:23.205Z"
author: codex-duplicate-audit
acceptance_criteria: A canonical Plan workflow recipe exists in docs or shared plugin reference; Claude/Codex skills and commands keep only harness-specific deltas and link to the recipe; examples stay valid against current plan contracts; docs-skills gate and focused plugin docs checks pass.
Expand All @@ -23,9 +23,8 @@ comments[2]{created_at,author,text}:
"2026-05-24T23:56:28.488Z",codex-docs-dedupe-lane,"Evidence from docs/plugin single-source lane (read-only, 2026-05-25): Plan examples are duplicated in plugins/pm-claude/skills/pm-planner/SKILL.md, plugins/pm-claude/commands/pm-planner.md, plugins/pm-codex/skills/pm-native/SKILL.md, and docs/COMMANDS.md#plan-workflow. The MCP server contract lists pm_plan subcommands as create|show|add-step|update-step|complete-step|block-step|reorder-step|remove-step|link|unlink|decision|discovery|validation|resume|approve|materialize. Drift found: Claude skill has the fullest lifecycle (decision/discovery/validation/show depths) but omits block/reorder/remove/link/unlink in examples; Codex skill has a shorter lifecycle with resume but omits discovery/validation/show variants; Claude slash command has the shortest create/add/complete/approve/materialize/show/resume set. Recommendation: make docs/COMMANDS.md#plan-workflow canonical for CLI-level Plan workflow and exact subcommand examples; create or keep one shared plugin-facing recipe only if needed, then reduce Claude/Codex skills/commands to harness-specific deltas (`harness: claude-code` vs `codex`, MCP JSON shape, when to use pm_plan). Smallest edit: in plugin skills/commands, replace the copied lifecycle blocks with 3-5 lines: when to use pm_plan, harness-specific create example, and link to docs/COMMANDS.md#plan-workflow for complete lifecycle. Validation commands to wire: pm contracts --command plan --flags-only --json, pm contracts --json (or MCP tools/list via plugin smoke), pnpm quality:docs-skills, pnpm smoke:claude-plugin, pnpm smoke:codex-plugin, plus rg -n \"pm_plan|pm plan\" plugins/pm-claude/skills/pm-planner/SKILL.md plugins/pm-claude/commands/pm-planner.md plugins/pm-codex/skills/pm-native/SKILL.md docs/COMMANDS.md to verify only canonical page contains the full lifecycle list.\n"
tests[1]{command,scope,timeout_seconds,note}:
pm contracts --command plan --flags-only --json,project,120,Plan contract surface probe
docs[4]{path,scope,note}:
docs[3]{path,scope,note}:
docs/COMMANDS.md,project,canonical Plan workflow lifecycle recipe
plugins/pm-claude/commands/pm-planner.md,project,Plan example clone
plugins/pm-claude/skills/pm-planner/SKILL.md,project,Plan example clone
plugins/pm-codex/skills/pm-native/SKILL.md,project,Plan example clone
close_reason: "Completed in combined extension/plugin dedupe PR: canonicalized duplicated extension contract/default sources or routed duplicated plugin/docs inventory to one source. Evidence is recorded on the item and parent pm-rnpb; focused tests, docs/plugin checks, manual temp-project smoke, package dogfood, full release gate, changelog check, GitHub/dependency/security checks, and Sentry/telemetry checks passed."
Expand Down
61 changes: 58 additions & 3 deletions .agents/pm/chores/pm-dudr.toon
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,76 @@ id: pm-dudr
title: "Claude plugin spec-alignment hygiene vs 2026-07-11 official docs (minor, non-blocking)"
description: Close minor Claude plugin packaging and documentation deviations from the current official specification without changing the established native runtime architecture.
type: Chore
status: open
status: closed
priority: 3
tags[3]: claude-plugin,docs,hygiene
created_at: "2026-07-11T10:05:30.442Z"
updated_at: "2026-09-08T13:33:39.517Z"
updated_at: "2026-09-27T08:36:45.317Z"
closed_at: "2026-09-27T08:36:41.856Z"
completed_at: "2026-09-27T08:36:41.856Z"
author: maintainer-agent
estimated_minutes: 60
acceptance_criteria: "All five spec-alignment gaps closed against the official plugin docs: .mcp.json note key corrected; metadata.* nesting matches schema; commands/ renamed to skills/; displayName + $schema present; root marketplace.json duplicate removed; plugin still validates --strict"
parent: pm-ugqx
risk: low
confidence: high
expected_result: The Claude plugin matches the official spec on all five flagged points and still validates strictly.
resolution: "Moved nine unique Claude command prompts into native skills, removed five duplicate command copies, corrected marketplace and plugin manifest fields, kept the compatibility marketplace identical, and migrated historical PM links to current skill paths."
expected_result: "Both Claude marketplace and plugin manifests validate strictly, all 14 /pm-* invocations remain available through skills, and generated portable skill ownership stays exact."
actual_result: Both claude plugin validate --strict commands passed; focused linked tests and full 100/100/100/100 coverage passed; packed npm/Bun smoke passed; historical linked-path count returned to its 195 baseline. Local timing gates showed host-sensitive overages; hosted CI is pending.
dependencies[4]{id,kind,created_at}:
pm-l9wl,related,"2026-07-11T10:05:30.442Z"
pm-wg07,related,"2026-07-24T23:53:23.133Z"
pm-z3ez,related,"2026-07-24T23:53:23.133Z"
pm-ugqx,implements,"2026-07-26T05:56:10.428Z"
comments[5]{created_at,author,text}:
"2026-09-27T07:08:34.573Z","harness:codex","Current official Claude plugin manifest docs support $schema/displayName, skills with stable slash names, and top-level marketplace description/version. Pre-fix contract test failed at four independent boundaries. The migrated plugin and marketplace now pass claude plugin validate --strict; the compatibility marketplace copy remains byte-equivalent by contract."
"2026-09-27T07:11:11.109Z","harness:codex",Static gate found the shared-skill generator rejected nine intentional Claude-owned skill directories. The generator now reserves exactly those names for pm-claude while continuing to refuse arbitrary unowned directories; its focused contract test covers the combined layout.
"2026-09-27T08:00:53.366Z","harness:codex","Plugin migration evidence: moved nine unique Claude command prompts into native skill SKILL.md paths, removed five duplicate command copies, validated both marketplace and plugin roots with claude plugin validate --strict, and kept root marketplace compatibility byte-identical. The repository tracker gate exposed 15 newly missing historical links; migrated each former command file link to its current skill path through pm files/docs and removed one obsolete commands directory link already covered by skills. pm validate --check-files now reports the preexisting ceiling of 195."
"2026-09-27T08:36:12.071Z","harness:codex","Verification: linked plugin contract/generator tests passed; claude plugin validate . --strict and plugins/pm-claude --strict passed; full coverage passed 9,373 tests at exact 100/100/100/100; packed npx/bunx smoke passed across nine packages; docs-skills, graph composition, record integrity, mutation and repository health passed. Static aggregate stopped only at host-sensitive import timing on unchanged SDK bundles, with isolated import gate passing on retry; hosted exact-head CI remains the release gate."
"2026-09-27T08:36:20.615Z","harness:codex","Correction to preceding verification note: a separate CLI transport-floor gate run also exceeded local host latency ceilings for context/next/create/claim under load average about 7. The aggregate static command stopped earlier at import timing. Both timing gates await hosted CI verdict; graph, record-integrity and mutation gates passed separately."
files[9]{path,scope,note}:
.claude-plugin/marketplace.json,project,canonical marketplace catalog
marketplace.json,project,byte-identical compatibility catalog
plugins/pm-claude/.claude-plugin/plugin.json,project,current plugin metadata schema
plugins/pm-claude/.mcp.json,project,schema-clean MCP configuration
scripts/gen-agent-plugin-skills.mjs,project,recognize intentionally Claude-owned skill invocations
scripts/smoke-claude-plugin.mjs,project,skill inventory and genuine manifest guards
tests/integration/claude-plugin-contract.spec.ts,project,plugin manifest and invocation contract
tests/unit/scripts/gen-agent-plugin-skills.spec.ts,project,generator preserves both plugin ownership contracts
tests/unit/scripts/smoke-claude-plugin.spec.ts,project,smoke behavioral coverage without test-only seam
tests[2]{command,scope,timeout_seconds,provenance{author,created_at,source_kind,source_ref},note}:
node scripts/run-tests.mjs test -- tests/integration/claude-plugin-contract.spec.ts tests/unit/scripts/smoke-claude-plugin.spec.ts,project,240,"harness:codex","2026-09-27T07:08:33.619Z",local_mutation,fix/package-install-readiness-claude-plugin-contracts,Claude plugin manifest and smoke contract
node scripts/run-tests.mjs test -- tests/unit/scripts/gen-agent-plugin-skills.spec.ts,project,240,"harness:codex","2026-09-27T07:11:10.302Z",local_mutation,fix/package-install-readiness-claude-plugin-contracts,generated shared skills and Claude-only invocation ownership
test_runs[1]:
- run_id: test-local-mujk8tah-p1a123
kind: test
status: passed
started_at: "2026-09-27T08:32:04.389Z"
finished_at: "2026-09-27T08:32:21.065Z"
recorded_at: "2026-09-27T08:32:21.065Z"
passed: 2
failed: 0
skipped: 0
executions[2]{command,requested_pm_context_mode,pm_context_mode,workspace_context_mode,trust_reason}:
node scripts/run-tests.mjs test -- tests/integration/claude-plugin-contract.spec.ts tests/unit/scripts/smoke-claude-plugin.spec.ts,schema,schema,source,local_source_ref
node scripts/run-tests.mjs test -- tests/unit/scripts/gen-agent-plugin-skills.spec.ts,schema,schema,source,local_source_ref
docs[17]{path,scope,note}:
CHANGELOG.md,project,Generated changelog entry for Claude plugin contract
docs/CLAUDE_CODE_PLUGIN.md,project,plugin layout and marketplace compatibility invariant
plugins/pm-claude/README.md,project,Claude plugin inventory
plugins/pm-claude/skills/pm-audit/SKILL.md,project,preserved slash invocations under skills layout
plugins/pm-claude/skills/pm-calendar/SKILL.md,project,preserved slash invocations under skills layout
plugins/pm-claude/skills/pm-close-task/SKILL.md,project,preserved slash invocations under skills layout
plugins/pm-claude/skills/pm-developer/SKILL.md,project,preserved slash invocations under skills layout
plugins/pm-claude/skills/pm-init/SKILL.md,project,preserved slash invocations under skills layout
plugins/pm-claude/skills/pm-list/SKILL.md,project,preserved slash invocations under skills layout
plugins/pm-claude/skills/pm-new/SKILL.md,project,preserved slash invocations under skills layout
plugins/pm-claude/skills/pm-planner/SKILL.md,project,preserved slash invocations under skills layout
plugins/pm-claude/skills/pm-release/SKILL.md,project,preserved slash invocations under skills layout
plugins/pm-claude/skills/pm-search/SKILL.md,project,preserved slash invocations under skills layout
plugins/pm-claude/skills/pm-start-task/SKILL.md,project,preserved slash invocations under skills layout
plugins/pm-claude/skills/pm-status/SKILL.md,project,preserved slash invocations under skills layout
plugins/pm-claude/skills/pm-triage/SKILL.md,project,preserved slash invocations under skills layout
plugins/pm-claude/skills/pm-workflow/SKILL.md,project,preserved slash invocations under skills layout
close_reason: Aligned Claude marketplace and plugin surfaces with current strict validation; preserved 14 slash invocations as skills
body: "Minor deviations from current official plugin docs (code.claude.com/docs/en/plugins-reference, fetched 2026-07-11; Claude Code v2.1.207). None block loading — `claude plugin validate --strict` passes today. Sweep these when touching the plugin (the substantive install-path defect is pm-l9wl):\n\n1. `plugins/pm-claude/.mcp.json` carries a non-schema `\"note\"` key inside the server entry. Unrecognized-field tolerance is documented for plugin.json top level, not for MCP server configs; Claude Code settings validators are known to strip unknown keys. Move the note to a JS/README comment.\n2. `.claude-plugin/marketplace.json` nests `description`/`version` under `metadata` — docs mark that \"accepted for backward compatibility\"; best practice is top-level fields.\n3. `commands/` (14 flat .md) is the legacy form — docs: \"Commands: Skills as flat Markdown files. Use `skills/` for new plugins.\" Plan a consolidation into `skills/` (each becomes `<name>/SKILL.md`), keeping invocation names stable.\n4. Adopt newer manifest fields: `$schema` (https://json.schemastore.org/claude-code-plugin-manifest.json) for editor validation, `displayName` (v2.1.143+) for the /plugin picker.\n5. Root `marketplace.json` duplicate: kept intentionally for backwards compat (smoke test asserts it). Document the dual-file invariant where it's enforced, or drop it once compat window closes — it is a silent-drift hazard (only `.claude-plugin/marketplace.json` is read by /plugin marketplace add).\n6. If a rename/removal ever happens, use the top-level `renames` map (v2.1.193+) instead of breaking installs."
2 changes: 1 addition & 1 deletion .agents/pm/extensions/.managed-extensions.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"version": 1,
"updated_at": "2026-09-27T03:46:20.555Z",
"updated_at": "2026-09-27T09:24:00.162Z",
"entries": [
{
"name": "pm-changelog",
Expand Down
4 changes: 2 additions & 2 deletions .agents/pm/features/pm-7t04.toon
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ status: closed
priority: 1
tags[5]: agent-ux,bootstrap,docs,init,pm-cli
created_at: "2026-05-17T08:58:01.020Z"
updated_at: "2026-09-22T05:25:13.685Z"
updated_at: "2026-09-27T07:45:28.635Z"
closed_at: "2026-05-17T10:24:19.569Z"
author: codex-agent
acceptance_criteria: pm init detects missing core pm guidance in AGENTS.md and/or CLAUDE.md; TTY init asks before modifying files; approval writes idempotent marked guidance; decline persists project state so future init runs do not ask; explicit pm init option can add guidance later; non-interactive runs do not block; settings/schema/contracts/help/docs/tests cover the behavior.
Expand Down Expand Up @@ -85,7 +85,7 @@ files[23]{path,scope,note}:
docs/AGENT_GUIDE.md,project,Agent bootstrap guidance checks
docs/COMMANDS.md,project,Init guidance mode command reference
docs/QUICKSTART.md,project,Init guidance lifecycle docs
plugins/pm-claude/commands/pm-init.md,project,pm_run init examples for guidance modes
plugins/pm-claude/skills/pm-init/SKILL.md,project,pm_run init examples for guidance modes
plugins/pm-codex/README.md,project,Codex automation hint for options.agentGuidance
scripts/dogfood-package-first.mjs,project,dogfood assertions for init guidance lifecycle
src/cli/commands/completion.ts,project,Bash/zsh/fish completion updates
Expand Down
4 changes: 2 additions & 2 deletions .agents/pm/features/pm-rnpb.toon
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ status: closed
priority: 0
tags[10]: agent-ux,audit,calendar,ci,dogfood,pm-cli,sdk,search,security,telemetry
created_at: "2026-05-03T13:20:01.343Z"
updated_at: "2026-09-22T05:00:03.509Z"
updated_at: "2026-09-27T07:45:31.227Z"
deadline: "2026-06-01T00:00:00.000Z"
closed_at: "2026-05-26T22:58:30.907Z"
author: codex-audit
Expand Down Expand Up @@ -1010,8 +1010,8 @@ docs[16]{path,scope,note}:
packages/pm-calendar/README.md,project,document project install and package bootstrap
packages/pm-search-advanced/README.md,project,document expanded search-advanced flags
plugins/pm-claude/agents/pm-coordinator.md,project,sync MCP tool list
plugins/pm-claude/commands/pm-init.md,project,sync MCP tool list
plugins/pm-claude/README.md,project,remove stale pm_guide tool documentation
plugins/pm-claude/skills/pm-init/SKILL.md,project,sync MCP tool list
plugins/pm-codex/README.md,project,sync MCP tool list
README.md,project,remove private telemetry mode from public release docs
close_reason: Consolidated perf/reliability umbrella scope delivered and merged in PR #75.
Expand Down
5 changes: 2 additions & 3 deletions .agents/pm/features/pm-v7dj.toon

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions .agents/pm/features/pm-xm7c.toon
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ status: closed
priority: 2
tags[3]: cli,multi-agent,sdk-first
created_at: "2026-07-19T14:43:37.560Z"
updated_at: "2026-09-22T05:18:35.525Z"
updated_at: "2026-09-27T07:45:34.998Z"
closed_at: "2026-07-20T12:47:19.609Z"
author: maintainer-agent
estimated_minutes: 240
Expand Down Expand Up @@ -72,7 +72,7 @@ test_runs[2]{run_id,kind,status,started_at,finished_at,recorded_at,passed,failed
docs[4]{path,scope,note}:
docs/COMMANDS.md,project,CLI atomic batch workflow
docs/SDK.md,project,public atomic structured mutation reference
plugins/pm-claude/commands/pm-init.md,project,30-tool initialization summary
plugins/pm-claude/README.md,project,pm_mutate and 30-tool reference
plugins/pm-claude/skills/pm-init/SKILL.md,project,30-tool initialization summary
close_reason: Delivered broad SDK/CLI structured mutation platform plus final bot hardening with exact 100% coverage.
body: ""
Loading
Loading