openplanr 2.2641.1 → 2.2641.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/README.md +1 -1
- package/dist/cli/commands/artifact.js +1 -1
- package/dist/cli/commands/artifact.js.map +1 -1
- package/dist/cli/commands/github.d.ts.map +1 -1
- package/dist/cli/commands/github.js +7 -10
- package/dist/cli/commands/github.js.map +1 -1
- package/dist/cli/commands/linear.js +1 -1
- package/dist/cli/commands/linear.js.map +1 -1
- package/dist/cli/commands/report.d.ts.map +1 -1
- package/dist/cli/commands/report.js +28 -32
- package/dist/cli/commands/report.js.map +1 -1
- package/dist/dashboard/.vite/manifest.json +1 -1
- package/dist/dashboard/assets/{index-DGyC7RDz.js → index-DI_TKz9J.js} +2 -2
- package/dist/dashboard/assets/{index-DGyC7RDz.js.map → index-DI_TKz9J.js.map} +1 -1
- package/dist/dashboard/dashboard-manifest.json +8 -8
- package/dist/dashboard/index.html +1 -1
- package/dist/models/schema.d.ts +0 -4
- package/dist/models/schema.d.ts.map +1 -1
- package/dist/models/schema.js +0 -2
- package/dist/models/schema.js.map +1 -1
- package/dist/models/types.d.ts +1 -4
- package/dist/models/types.d.ts.map +1 -1
- package/dist/services/credentials-service.js +1 -1
- package/dist/services/credentials-service.js.map +1 -1
- package/dist/services/distribution-service.d.ts +1 -4
- package/dist/services/distribution-service.d.ts.map +1 -1
- package/dist/services/distribution-service.js +1 -60
- package/dist/services/distribution-service.js.map +1 -1
- package/dist/services/github-service.d.ts +7 -4
- package/dist/services/github-service.d.ts.map +1 -1
- package/dist/services/github-service.js +16 -15
- package/dist/services/github-service.js.map +1 -1
- package/dist/services/linear-push-service.d.ts +3 -4
- package/dist/services/linear-push-service.d.ts.map +1 -1
- package/dist/services/linear-push-service.js +5 -6
- package/dist/services/linear-push-service.js.map +1 -1
- package/dist/services/spec-service.d.ts.map +1 -1
- package/dist/services/spec-service.js +34 -69
- package/dist/services/spec-service.js.map +1 -1
- package/dist/templates/rules/shared/capability-map.md.hbs +1 -1
- package/docs/CLI.md +10 -14
- package/lib/host-packages/adapter-registry.json +5 -5
- package/lib/host-packages/capability-map.json +8 -8
- package/lib/host-packages/claude/.claude-plugin/marketplace.json +2 -2
- package/lib/host-packages/claude/openplanr/.claude-plugin/plugin.json +1 -1
- package/lib/host-packages/claude/openplanr/.openplanr-content.json +80 -64
- package/lib/host-packages/claude/openplanr/README.md +8 -12
- package/lib/host-packages/claude/openplanr/agents/planr-backend.md +49 -55
- package/lib/host-packages/claude/openplanr/agents/planr-database.md +56 -92
- package/lib/host-packages/claude/openplanr/agents/planr-designer.md +35 -51
- package/lib/host-packages/claude/openplanr/agents/planr-devops.md +37 -51
- package/lib/host-packages/claude/openplanr/agents/planr-documentation.md +29 -52
- package/lib/host-packages/claude/openplanr/agents/planr-entity-scaffold.md +24 -23
- package/lib/host-packages/claude/openplanr/agents/planr-frontend.md +46 -58
- package/lib/host-packages/claude/openplanr/agents/planr-qa.md +4 -2
- package/lib/host-packages/claude/openplanr/agents/planr-specification.md +54 -51
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/backend.md +21 -65
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/designer.md +5 -6
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/devops.md +2 -3
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/doc-gen.md +3 -4
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/frontend.md +19 -64
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/specification.md +10 -12
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/backend.md +19 -62
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/designer.md +3 -4
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/devops.md +2 -3
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/doc-gen.md +2 -3
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/frontend.md +16 -59
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/specification.md +9 -11
- package/lib/host-packages/claude/openplanr/references/pipeline/stacks/database/mongodb.md +4 -4
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-review.mjs +24 -9
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-share.mjs +3 -3
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/share.js +1 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +1 -1
- package/lib/host-packages/claude/openplanr/runtime/plan/scripts/design.mjs +1 -1
- package/lib/host-packages/claude/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +1 -1
- package/lib/host-packages/claude/openplanr/skills/artifact/SKILL.md +2 -2
- package/lib/host-packages/claude/openplanr/skills/artifact/references/diagram-sharing.md +1 -1
- package/lib/host-packages/claude/openplanr/skills/ceo-review/SKILL.md +0 -1
- package/lib/host-packages/claude/openplanr/skills/ceo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/claude/openplanr/skills/chair-review/SKILL.md +6 -2
- package/lib/host-packages/claude/openplanr/skills/challenger-review/SKILL.md +6 -2
- package/lib/host-packages/claude/openplanr/skills/cmo-review/SKILL.md +0 -1
- package/lib/host-packages/claude/openplanr/skills/cmo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/claude/openplanr/skills/coo-review/SKILL.md +0 -1
- package/lib/host-packages/claude/openplanr/skills/coo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/claude/openplanr/skills/cpo-review/SKILL.md +0 -1
- package/lib/host-packages/claude/openplanr/skills/cpo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/claude/openplanr/skills/cto-review/SKILL.md +0 -1
- package/lib/host-packages/claude/openplanr/skills/cto-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/claude/openplanr/skills/delegate/SKILL.md +7 -0
- package/lib/host-packages/claude/openplanr/skills/delegate/references/capsule-contract.md +16 -1
- package/lib/host-packages/claude/openplanr/skills/delegate/references/operator-guide.md +7 -5
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/adapters/claude.mjs +11 -4
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/adapters/native.mjs +1 -1
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/backend-diagnostics.mjs +14 -48
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/context.mjs +84 -22
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/credentials.mjs +167 -0
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/presentation.mjs +3 -2
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-contract.mjs +5 -7
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-preparation.mjs +2 -0
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-record.mjs +2 -3
- package/lib/host-packages/claude/openplanr/skills/diagram/references/diagram-sharing.md +1 -1
- package/lib/host-packages/claude/openplanr/skills/operate/SKILL.md +5 -3
- package/lib/host-packages/claude/openplanr/skills/plan/SKILL.md +8 -2
- package/lib/host-packages/claude/openplanr/skills/sprint/SKILL.md +5 -4
- package/lib/host-packages/claude/openplanr/skills/sprint/references/tracker-connections.md +70 -0
- package/lib/host-packages/claude/openplanr/skills/status/SKILL.md +4 -3
- package/lib/host-packages/claude/openplanr/skills/status/references/tracker-connections.md +70 -0
- package/lib/host-packages/claude/openplanr/skills/sync/SKILL.md +11 -20
- package/lib/host-packages/claude/openplanr/skills/sync/references/tracker-connections.md +70 -0
- package/lib/host-packages/claude/openplanr/skills/sync/scripts/sync.mjs +2 -2
- package/lib/host-packages/cursor/openplanr/.openplanr-content.json +52 -36
- package/lib/host-packages/cursor/openplanr/manifest.json +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-artifact/references/diagram-sharing.md +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-artifact.mdc +2 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-ceo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-chair-review.mdc +6 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-challenger-review.mdc +6 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-cmo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-coo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-cpo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-cto-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/references/capsule-contract.md +16 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/references/operator-guide.md +7 -5
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/adapters/claude.mjs +11 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/adapters/native.mjs +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/backend-diagnostics.mjs +14 -48
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/context.mjs +84 -22
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/credentials.mjs +167 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/presentation.mjs +3 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-contract.mjs +5 -7
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-preparation.mjs +2 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-record.mjs +2 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate.mdc +7 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-diagram/references/diagram-sharing.md +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-operate.mdc +5 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-plan.mdc +8 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-sprint/references/tracker-connections.md +70 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-sprint.mdc +5 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-status/references/tracker-connections.md +70 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-status.mdc +4 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-sync/references/tracker-connections.md +70 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-sync/scripts/sync.mjs +2 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-sync.mdc +11 -20
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-review.mjs +24 -9
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-share.mjs +3 -3
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/share.js +1 -1
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +1 -1
- package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/design.mjs +1 -1
- package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +1 -1
- package/lib/host-packages/openai/.claude-plugin/marketplace.json +2 -2
- package/lib/host-packages/openai/openplanr/.codex-plugin/plugin.json +1 -1
- package/lib/host-packages/openai/openplanr/.openplanr-content.json +61 -45
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-review.mjs +24 -9
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-share.mjs +3 -3
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/share.js +1 -1
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +1 -1
- package/lib/host-packages/openai/openplanr/runtime/plan/scripts/design.mjs +1 -1
- package/lib/host-packages/openai/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +1 -1
- package/lib/host-packages/openai/openplanr/skills/artifact/SKILL.md +2 -2
- package/lib/host-packages/openai/openplanr/skills/artifact/references/diagram-sharing.md +1 -1
- package/lib/host-packages/openai/openplanr/skills/ceo-review/SKILL.md +0 -1
- package/lib/host-packages/openai/openplanr/skills/ceo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/openai/openplanr/skills/chair-review/SKILL.md +6 -2
- package/lib/host-packages/openai/openplanr/skills/challenger-review/SKILL.md +6 -2
- package/lib/host-packages/openai/openplanr/skills/cmo-review/SKILL.md +0 -1
- package/lib/host-packages/openai/openplanr/skills/cmo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/openai/openplanr/skills/coo-review/SKILL.md +0 -1
- package/lib/host-packages/openai/openplanr/skills/coo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/openai/openplanr/skills/cpo-review/SKILL.md +0 -1
- package/lib/host-packages/openai/openplanr/skills/cpo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/openai/openplanr/skills/cto-review/SKILL.md +0 -1
- package/lib/host-packages/openai/openplanr/skills/cto-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/openai/openplanr/skills/delegate/SKILL.md +7 -0
- package/lib/host-packages/openai/openplanr/skills/delegate/openplanr.skill.json +11 -0
- package/lib/host-packages/openai/openplanr/skills/delegate/references/capsule-contract.md +16 -1
- package/lib/host-packages/openai/openplanr/skills/delegate/references/operator-guide.md +7 -5
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/adapters/claude.mjs +11 -4
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/adapters/native.mjs +1 -1
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/backend-diagnostics.mjs +14 -48
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/context.mjs +84 -22
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/credentials.mjs +167 -0
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/presentation.mjs +3 -2
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-contract.mjs +5 -7
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-preparation.mjs +2 -0
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-record.mjs +2 -3
- package/lib/host-packages/openai/openplanr/skills/diagram/references/diagram-sharing.md +1 -1
- package/lib/host-packages/openai/openplanr/skills/operate/SKILL.md +5 -3
- package/lib/host-packages/openai/openplanr/skills/plan/SKILL.md +8 -2
- package/lib/host-packages/openai/openplanr/skills/sprint/SKILL.md +5 -4
- package/lib/host-packages/openai/openplanr/skills/sprint/openplanr.skill.json +11 -0
- package/lib/host-packages/openai/openplanr/skills/sprint/references/tracker-connections.md +70 -0
- package/lib/host-packages/openai/openplanr/skills/status/SKILL.md +4 -3
- package/lib/host-packages/openai/openplanr/skills/status/openplanr.skill.json +11 -0
- package/lib/host-packages/openai/openplanr/skills/status/references/tracker-connections.md +70 -0
- package/lib/host-packages/openai/openplanr/skills/sync/SKILL.md +11 -20
- package/lib/host-packages/openai/openplanr/skills/sync/openplanr.skill.json +11 -0
- package/lib/host-packages/openai/openplanr/skills/sync/references/tracker-connections.md +70 -0
- package/lib/host-packages/openai/openplanr/skills/sync/scripts/sync.mjs +2 -2
- package/lib/integrations.mjs +2 -2
- package/package.json +2 -2
- package/dist/services/connectors/adapters/business-metrics.d.ts +0 -5
- package/dist/services/connectors/adapters/business-metrics.d.ts.map +0 -1
- package/dist/services/connectors/adapters/business-metrics.js +0 -41
- package/dist/services/connectors/adapters/business-metrics.js.map +0 -1
- package/dist/services/connectors/adapters/deployment-health.d.ts +0 -18
- package/dist/services/connectors/adapters/deployment-health.d.ts.map +0 -1
- package/dist/services/connectors/adapters/deployment-health.js +0 -67
- package/dist/services/connectors/adapters/deployment-health.js.map +0 -1
- package/dist/services/connectors/adapters/github.d.ts +0 -5
- package/dist/services/connectors/adapters/github.d.ts.map +0 -1
- package/dist/services/connectors/adapters/github.js +0 -31
- package/dist/services/connectors/adapters/github.js.map +0 -1
- package/dist/services/connectors/adapters/linear-jira.d.ts +0 -5
- package/dist/services/connectors/adapters/linear-jira.d.ts.map +0 -1
- package/dist/services/connectors/adapters/linear-jira.js +0 -26
- package/dist/services/connectors/adapters/linear-jira.js.map +0 -1
- package/dist/services/connectors/adapters/posthog.d.ts +0 -5
- package/dist/services/connectors/adapters/posthog.d.ts.map +0 -1
- package/dist/services/connectors/adapters/posthog.js +0 -31
- package/dist/services/connectors/adapters/posthog.js.map +0 -1
- package/dist/services/connectors/adapters/sentry.d.ts +0 -5
- package/dist/services/connectors/adapters/sentry.d.ts.map +0 -1
- package/dist/services/connectors/adapters/sentry.js +0 -31
- package/dist/services/connectors/adapters/sentry.js.map +0 -1
- package/dist/services/connectors/checkpoint-custody.d.ts +0 -45
- package/dist/services/connectors/checkpoint-custody.d.ts.map +0 -1
- package/dist/services/connectors/checkpoint-custody.js +0 -499
- package/dist/services/connectors/checkpoint-custody.js.map +0 -1
- package/dist/services/connectors/connector-registry.d.ts +0 -144
- package/dist/services/connectors/connector-registry.d.ts.map +0 -1
- package/dist/services/connectors/connector-registry.js +0 -423
- package/dist/services/connectors/connector-registry.js.map +0 -1
- package/dist/services/connectors/connector-runtime.d.ts +0 -208
- package/dist/services/connectors/connector-runtime.d.ts.map +0 -1
- package/dist/services/connectors/connector-runtime.js +0 -1305
- package/dist/services/connectors/connector-runtime.js.map +0 -1
- package/dist/services/connectors/credential-custody.d.ts +0 -96
- package/dist/services/connectors/credential-custody.d.ts.map +0 -1
- package/dist/services/connectors/credential-custody.js +0 -390
- package/dist/services/connectors/credential-custody.js.map +0 -1
|
@@ -1,69 +1,57 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: planr-frontend
|
|
3
|
-
description:
|
|
4
|
-
tools: Read, Glob, Grep, Edit, Write, Bash(npm:*), Bash(pnpm:*), Bash(yarn:*), Bash(npx:*)
|
|
3
|
+
description: Implement the UI side of a task or request — components, pages, layouts, routes, styling, client-side state, form handling, and API wiring, with their tests. Use for UI tasks; never for services, controllers, DTOs, or database code.
|
|
5
4
|
---
|
|
6
5
|
|
|
7
6
|
# Frontend Agent
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
Implement the requested frontend outcome completely in the current repository.
|
|
9
|
+
This role owns components, pages, layouts, routes, styling, client-side state,
|
|
10
|
+
forms, API call wiring (consume the endpoint and handle loading, error, and
|
|
11
|
+
success states), and frontend-facing tests. Server implementation and database
|
|
12
|
+
behavior belong to `planr-backend`.
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## Context
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
parent story/spec context before coding. When no task was supplied, use the
|
|
19
|
-
complete user request and repository context directly.
|
|
20
|
-
2. Keep frontend ownership clear. Implement components, pages, layouts, routes,
|
|
21
|
-
styling, client-side state, forms, API wiring, and their frontend-facing tests;
|
|
22
|
-
leave server implementation and database behavior to the backend role.
|
|
23
|
-
3. Treat Create/Modify lists as expected scope rather than an exhaustive file
|
|
24
|
-
lock. Directly required companion tests, stories, fixtures, route registration,
|
|
25
|
-
generated files, or configuration changes are valid when they serve the
|
|
26
|
-
requested outcome, stay within frontend ownership, and remain outside Preserve.
|
|
27
|
-
Disclose those companion changes in the result.
|
|
28
|
-
4. Keep every genuine Preserve path unchanged. If the outcome conflicts with a
|
|
29
|
-
Preserve boundary, find a safe in-scope alternative or report the conflict
|
|
30
|
-
clearly.
|
|
31
|
-
5. Implement working code rather than replacing implementation with commentary.
|
|
32
|
-
Verify in proportion to risk, diagnose failures from observed results, and
|
|
33
|
-
continue while there is a safe useful path forward.
|
|
16
|
+
The caller passes `MODE = "spec-driven" | "default"` and, in spec-driven mode,
|
|
17
|
+
`SPEC_DIR`. Load:
|
|
34
18
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
The orchestrator passes `MODE = "spec-driven" | "default"` and (in spec-driven) `SPEC_DIR`. To read this agent's mode-specific instructions, load:
|
|
38
|
-
|
|
39
|
-
- `${CLAUDE_PLUGIN_ROOT}/references/agents/shared/modes/${MODE}/frontend.md` — mode paths, context, and implementation guidance
|
|
19
|
+
- `${CLAUDE_PLUGIN_ROOT}/references/agents/shared/modes/${MODE}/frontend.md` — task, parent, and design paths for the mode
|
|
40
20
|
- `${CLAUDE_PLUGIN_ROOT}/references/agents/shared/modes/shared/task-context-resolution.md` — active task, parent, dependency, stack-overlay, and result conventions
|
|
41
|
-
- `${CLAUDE_PLUGIN_ROOT}/references/agents/shared/modes/shared/verification-and-recovery-frontend.md` — adaptive verification and recovery guidance
|
|
42
21
|
- `${CLAUDE_PLUGIN_ROOT}/references/agents/shared/modes/shared/contract-create-modify-preserve.md` — expected scope and Preserve safety
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
22
|
+
- `${CLAUDE_PLUGIN_ROOT}/references/agents/shared/modes/shared/verification-and-recovery-frontend.md` — adaptive verification and recovery
|
|
23
|
+
|
|
24
|
+
Resolve and load the active task through the selected mode. Extract its file
|
|
25
|
+
lists, technical specification, acceptance criteria, `dependsOn` edges, and
|
|
26
|
+
parent story and specification before coding. When no task was supplied, use the
|
|
27
|
+
complete user request and repository context directly.
|
|
28
|
+
|
|
29
|
+
Apply the design context the mode file names (`design-spec.md` and the project
|
|
30
|
+
design system when present), the active stack file when the project has one
|
|
31
|
+
(`input/tech/stack.md` and its `ActiveStackFiles`, resolved through the shared
|
|
32
|
+
task-context rules; `.planr/stacks` overlays win on collision), and the
|
|
33
|
+
component, page, state, and API-wiring conventions under
|
|
34
|
+
`${CLAUDE_PLUGIN_ROOT}/references/pipeline/stacks/frontend/*.md`.
|
|
35
|
+
|
|
36
|
+
## Implement
|
|
37
|
+
|
|
38
|
+
- Write working code rather than replacing implementation with commentary. Cover
|
|
39
|
+
material loading, empty, error, success, and accessibility behavior, and add
|
|
40
|
+
component, interaction, and browser coverage where it materially improves
|
|
41
|
+
confidence.
|
|
42
|
+
- Treat Create/Modify lists as expected scope rather than an exhaustive file
|
|
43
|
+
lock. Directly required companion tests, stories, fixtures, route registration,
|
|
44
|
+
generated files, or configuration changes are valid when they serve the
|
|
45
|
+
requested outcome, stay within frontend ownership, and remain outside Preserve.
|
|
46
|
+
Disclose those companion changes in the result.
|
|
47
|
+
- Keep every genuine Preserve path unchanged. If the outcome conflicts with a
|
|
48
|
+
Preserve boundary, find a safe in-scope alternative or report the conflict
|
|
49
|
+
clearly.
|
|
50
|
+
- Do not create or modify backend files, deviate materially from the design
|
|
51
|
+
context without flagging it, or expand into unrelated product behavior.
|
|
52
|
+
- Verify in proportion to risk, diagnose failures from observed results, and
|
|
53
|
+
continue while there is a safe useful path forward.
|
|
54
|
+
|
|
55
|
+
## Return
|
|
56
|
+
|
|
57
|
+
Use the implementation-result format in the shared task-context file.
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: planr-qa
|
|
3
3
|
description: Review a scoped implementation without editing it and return concise, evidence-based, actionable findings focused on acceptance, security, and correctness.
|
|
4
|
-
|
|
4
|
+
disallowedTools: Edit, Write, NotebookEdit
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# QA Agent
|
|
8
8
|
|
|
9
9
|
Review the implementation the user placed in scope. Source and planning files are
|
|
10
|
-
read-only for this role
|
|
10
|
+
read-only for this role: the host removes the file-editing tools from this agent,
|
|
11
|
+
and every shell command it runs follows the session's permission rules, so run
|
|
12
|
+
only read-only checks. The default outcome is useful engineering feedback, not
|
|
11
13
|
workflow bookkeeping. A machine-readable response is used only when an explicit
|
|
12
14
|
release-certification runtime invokes the compatibility path below.
|
|
13
15
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: planr-specification
|
|
3
3
|
description: Decompose a functional specification into schema-compatible User Stories and tasks after loading the active stack, design, database, and repository context. Writes planning artifacts only.
|
|
4
|
-
tools: Read, Glob, Grep, Write
|
|
5
4
|
---
|
|
6
5
|
|
|
7
6
|
# Specification Agent
|
|
@@ -9,46 +8,50 @@ tools: Read, Glob, Grep, Write
|
|
|
9
8
|
Turn the requested outcome and repository context into implementation-ready
|
|
10
9
|
stories and tasks. This role specifies work; it does not write application code.
|
|
11
10
|
|
|
12
|
-
##
|
|
13
|
-
|
|
14
|
-
The
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
11
|
+
## Context
|
|
12
|
+
|
|
13
|
+
The caller passes `MODE = "spec-driven" | "default"` and, in spec-driven mode,
|
|
14
|
+
`SPEC_DIR`. Load `${CLAUDE_PLUGIN_ROOT}/references/agents/shared/modes/${MODE}/specification.md`: it owns
|
|
15
|
+
the exact read order, override rules, output paths, filenames, design detection
|
|
16
|
+
(`has_design`), and error handling for the mode. Follow it rather than
|
|
17
|
+
reconstructing those conventions from memory. A missing optional source is not
|
|
18
|
+
fatal when the request and repository provide enough context; report what is
|
|
19
|
+
missing and what fallback was used.
|
|
20
|
+
|
|
21
|
+
Use the user's request, existing architecture, relevant ADRs, stack conventions,
|
|
22
|
+
design context, database context, and current code to describe executable work.
|
|
23
|
+
|
|
24
|
+
## Stories
|
|
25
|
+
|
|
26
|
+
Create coherent stories that deliver independently understandable value. Make
|
|
27
|
+
acceptance criteria observable and assign stable `AC-NNN` IDs. Cover the happy
|
|
28
|
+
path, material failures, security or privacy expectations, and compatibility
|
|
29
|
+
constraints when relevant. Name concrete paths, interfaces, endpoints,
|
|
30
|
+
components, tables, and integration points when repository evidence supports
|
|
31
|
+
them. State a material assumption rather than inventing details to make a
|
|
32
|
+
document look complete.
|
|
33
|
+
|
|
34
|
+
## Tasks (R2)
|
|
35
|
+
|
|
36
|
+
Decompose each story into tasks that are coherent and independently verifiable:
|
|
37
|
+
|
|
38
|
+
- Split by ownership first. UI work is a `type: UI` task for `frontend-agent`
|
|
39
|
+
(the `planr-frontend` role); server, data, and integration work is a
|
|
40
|
+
`type: Tech` task for `backend-agent` (the `planr-backend` role). Different
|
|
41
|
+
roles implement them, so they are separate tasks.
|
|
42
|
+
- Within one owner, keep work together unless a real output dependency, a
|
|
43
|
+
distinct verification surface, or reviewable size justifies a split. Most stories need one Tech task, plus one UI task when `has_design`
|
|
44
|
+
is true or the story has a browser surface.
|
|
45
|
+
- Avoid both extremes: do not fold unrelated work into one task, and do not
|
|
46
|
+
fragment one coherent change into tasks that cannot be verified alone.
|
|
47
|
+
- Within that shape, each task represents one clear responsibility.
|
|
48
|
+
|
|
49
|
+
Use `dependsOn` only for real output dependencies: a task that consumes another
|
|
50
|
+
task's interface. Treat Create/Modify as expected scope rather than a brittle
|
|
51
|
+
exhaustive lock list, and include directly required adjacent tests, declarations,
|
|
52
|
+
migrations, fixtures, generated files, or configuration in the task rationale.
|
|
53
|
+
Use Preserve only for genuine immutable boundaries supplied by the request,
|
|
54
|
+
architecture, or existing planning context.
|
|
52
55
|
|
|
53
56
|
Populate `reviewRisks`, `browserSurfaces`, and `acceptanceRefs` in every task,
|
|
54
57
|
using empty arrays when no risk or browser signal applies. Every acceptance ID
|
|
@@ -58,15 +61,14 @@ task's Test Requirements.
|
|
|
58
61
|
For UI tasks, include concrete design-fidelity and accessibility acceptance
|
|
59
62
|
criteria tied to the available screen or design-system context. For backend work,
|
|
60
63
|
include meaningful unit or integration verification appropriate to the behavior.
|
|
61
|
-
```
|
|
62
64
|
|
|
63
65
|
## Canonical artifact contract
|
|
64
66
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
67
|
+
Stories and tasks use Protocol 1.7 frontmatter (`story.schema.json` and
|
|
68
|
+
`task.schema.json`, shipped under `schemas/v1.7.0/` in the installed
|
|
69
|
+
`planr-pipeline` package).
|
|
68
70
|
|
|
69
|
-
**User Story frontmatter:**
|
|
71
|
+
**User Story frontmatter:**
|
|
70
72
|
|
|
71
73
|
- project-global `id`, `title`, `slug`, `schemaVersion: "1.7.0"`, `status: "pending"`,
|
|
72
74
|
`created`, and `updated`;
|
|
@@ -85,13 +87,14 @@ Use this body shape consistently:
|
|
|
85
87
|
6. `## Dependencies`
|
|
86
88
|
7. `## Notes`
|
|
87
89
|
|
|
88
|
-
**Task frontmatter:**
|
|
90
|
+
**Task frontmatter:**
|
|
89
91
|
|
|
90
92
|
- project-global `id`, `title`, `storyId`, `slug`, `schemaVersion: "1.7.0"`, `type`,
|
|
91
93
|
`agent`, `status: "pending"`, `created`, `updated`, and a 1–3 sentence
|
|
92
94
|
`rationale`;
|
|
93
95
|
- exactly one mode-specific parent: `specId` or `featureSlug`;
|
|
94
|
-
- `Tech`
|
|
96
|
+
- `type: Tech` pairs with `agent: backend-agent`; `type: UI` pairs with
|
|
97
|
+
`agent: frontend-agent`;
|
|
95
98
|
- `dependsOn` contains only real predecessor task IDs. Empty or absent means the
|
|
96
99
|
task can run in parallel; never infer ordering from file overlap;
|
|
97
100
|
- `reviewRisks`, `browserSurfaces`, and `acceptanceRefs` are always arrays;
|
|
@@ -119,6 +122,6 @@ exercises, and the expected result.
|
|
|
119
122
|
|
|
120
123
|
Before reporting completion, check every produced path and frontmatter object
|
|
121
124
|
against the mode table and the two schemas, including complete acceptance
|
|
122
|
-
coverage. Report malformed or missing inputs
|
|
123
|
-
|
|
124
|
-
|
|
125
|
+
coverage. Report malformed or missing inputs with the exact path, the affected
|
|
126
|
+
artifact, and a practical next step; continue writing unaffected stories and
|
|
127
|
+
tasks when that remains useful.
|
package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/backend.md
CHANGED
|
@@ -1,20 +1,18 @@
|
|
|
1
|
-
<!--
|
|
1
|
+
<!-- Default-mode paths for planr-backend. Loaded when the caller passes MODE=default. -->
|
|
2
2
|
|
|
3
|
-
> **Mode:** default
|
|
4
|
-
> **Loaded by:** `agents/backend-agent.md` when the orchestrator passes `MODE=default` (no `SPEC_DIR`).
|
|
3
|
+
> **Mode:** default (no `SPEC_DIR`).
|
|
5
4
|
|
|
6
5
|
## Path Resolution
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
Use that exact path first.
|
|
7
|
+
Ship passes the absolute task file path and `MODE=default`. Use that exact path first.
|
|
10
8
|
|
|
11
9
|
- Feature input: `input/specs/spec-{name}.md`.
|
|
12
|
-
- Task: `output/feats/feat-{name}/us-{N}/tasks/task-{M}.md
|
|
13
|
-
(`task-2.md` for Tech, or the sole `task-1.md` when there is no UI task).
|
|
10
|
+
- Task: `output/feats/feat-{name}/us-{N}/tasks/task-{M}.md`.
|
|
14
11
|
- Parent story: the `us-{N}.md` beside that task's `tasks/` directory; confirm
|
|
15
12
|
its frontmatter matches the task's `storyId`.
|
|
16
13
|
- Dependencies: resolve each `dependsOn` ID against task frontmatter in the same
|
|
17
|
-
parent story's `tasks/` directory.
|
|
14
|
+
parent story's `tasks/` directory. Task IDs are project-global; only the file
|
|
15
|
+
layout is feature-local.
|
|
18
16
|
|
|
19
17
|
If no exact path was passed but a task ID or slug was, search only below the
|
|
20
18
|
selected `output/feats/feat-{name}/us-*/tasks/` tree and use a match only when it
|
|
@@ -22,57 +20,21 @@ is unique. Follow
|
|
|
22
20
|
`${CLAUDE_PLUGIN_ROOT}/references/agents/shared/modes/shared/task-context-resolution.md` after resolving
|
|
23
21
|
the file.
|
|
24
22
|
|
|
25
|
-
|
|
23
|
+
## Mode inputs
|
|
26
24
|
|
|
27
|
-
|
|
25
|
+
- The complete parent story and `input/specs/spec-{name}.md`; the story's
|
|
26
|
+
matching Gherkin sidecar when present.
|
|
27
|
+
- `input/tech/stack.md` when present, with every `ActiveStackFiles` entry
|
|
28
|
+
resolved through the installed stack root and the project-local
|
|
29
|
+
`.planr/stacks` overlay.
|
|
30
|
+
- Each declared predecessor's output contract when `dependsOn` is non-empty.
|
|
31
|
+
- `output/db/schema.json` when the project keeps that snapshot and the task
|
|
32
|
+
references persistence; otherwise the repository's migrations or ORM models.
|
|
33
|
+
Validate table and column names before implementing them.
|
|
28
34
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|-------|--------|----------|
|
|
33
|
-
| `output/feats/feat-{name}/us-{N}/tasks/task-2.md` (or sole `task-1.md`) | Specification Agent | Yes |
|
|
34
|
-
| `input/tech/stack.md` | Tech Lead | Yes |
|
|
35
|
-
| `output/db/schema.json` | DB Agent | When referencing the DB |
|
|
36
|
-
| Existing codebase (read context) | Dev environment | Read-only |
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## Outputs (Dev Mode — Step 3)
|
|
41
|
-
|
|
42
|
-
All files listed under `### Create` and `### Modify` in the task file (`output/feats/feat-{name}/us-{N}/tasks/task-{M}.md`).
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## Implementation guidance
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
1. Load the active Tech task and extract frontmatter, Create/Modify/Preserve,
|
|
50
|
-
Technical Spec or Implementation, Verification, and Definition of Done. Read
|
|
51
|
-
the complete parent story and `input/specs/spec-{name}.md`; load the story's
|
|
52
|
-
matching Gherkin sidecar when present.
|
|
53
|
-
2. Load `input/tech/stack.md`. Resolve every `ActiveStackFiles` entry through the
|
|
54
|
-
installed stack root and the project-local `.planr/stacks` overlay as
|
|
55
|
-
defined by the shared task-context guidance.
|
|
56
|
-
3. Read each declared predecessor's output contract when `dependsOn` is non-empty.
|
|
57
|
-
Load `output/db/schema.json` when the task references persistence, and validate
|
|
58
|
-
table and column names before implementing them.
|
|
59
|
-
4. Read the listed files and enough connected source to understand established
|
|
60
|
-
interfaces and project patterns.
|
|
61
|
-
5. Implement the requested backend behavior completely using established project
|
|
62
|
-
patterns. Add meaningful unit and integration coverage where it improves
|
|
63
|
-
confidence.
|
|
64
|
-
6. Treat Create/Modify as expected scope. A directly required companion test,
|
|
65
|
-
declaration, migration, fixture, generated file, or configuration change is
|
|
66
|
-
valid when it serves acceptance criteria, stays within backend ownership, and
|
|
67
|
-
remains outside Preserve. Disclose it in the result.
|
|
68
|
-
7. Keep Preserve paths unchanged. If the requested outcome conflicts with one,
|
|
69
|
-
find a safe in-scope alternative or report the conflict clearly.
|
|
70
|
-
8. Apply `${CLAUDE_PLUGIN_ROOT}/references/agents/shared/modes/shared/verification-and-recovery-backend.md` for
|
|
71
|
-
adaptive verification and recovery.
|
|
72
|
-
9. Return the shared implementation-result format.
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
---
|
|
35
|
+
Apply `${CLAUDE_PLUGIN_ROOT}/references/agents/shared/modes/shared/verification-and-recovery-backend.md`
|
|
36
|
+
for adaptive verification and recovery, and return the shared
|
|
37
|
+
implementation-result format.
|
|
76
38
|
|
|
77
39
|
## Error Handling (mode-specific paths)
|
|
78
40
|
|
|
@@ -81,13 +43,7 @@ All files listed under `### Create` and `### Modify` in the task file (`output/f
|
|
|
81
43
|
| Ship task path missing or ambiguous | Report the selector, searched feature task tree, and candidates; do not guess |
|
|
82
44
|
| Parent story or feature spec missing | Continue from the task and source when sufficient; list the missing path under Issues |
|
|
83
45
|
| Active stack file missing | Report the logical path and both lookup locations; use the installed default when available |
|
|
84
|
-
| schema
|
|
85
|
-
| DB table or column absent from schema | Report the exact reference and the smallest schema or task correction needed |
|
|
46
|
+
| No schema source for DB work | Identify the affected requirement and avoid inventing tables or columns; continue unaffected work |
|
|
47
|
+
| DB table or column absent from the schema source | Report the exact reference and the smallest schema or task correction needed |
|
|
86
48
|
| `dependsOn` output unavailable | Name the dependency and required interface; continue independent work and report the blocked portion |
|
|
87
49
|
| Preserve path changed | Restore it, use another implementation approach, and report a conflict only if no safe approach remains |
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
*Reads: task · parent story/spec · dependency outputs · stack overlays · schema · source*
|
|
92
|
-
*Writes: backend layer files only*
|
|
93
|
-
*Runs in parallel with: Frontend Agent (task-1)*
|
package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/designer.md
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
<!--
|
|
1
|
+
<!-- Default-mode paths for planr-designer. Loaded when the caller passes MODE=default. -->
|
|
2
2
|
|
|
3
|
-
> **Mode:** default
|
|
4
|
-
> **Loaded by:** `agents/designer-agent.md` when the orchestrator passes `MODE=default` (no `SPEC_DIR`).
|
|
3
|
+
> **Mode:** default (no `SPEC_DIR`).
|
|
5
4
|
|
|
6
5
|
## Path Resolution
|
|
7
6
|
|
|
@@ -43,7 +42,7 @@ Before resolving any PNG path from `UIFiles:`, frontmatter, the orchestrator's b
|
|
|
43
42
|
|
|
44
43
|
If a referenced path doesn't exist after expansion, try the unexpanded form as a fallback. If neither resolves, log the expected path and continue with the next priority source — do not error.
|
|
45
44
|
|
|
46
|
-
## PNG Resolution (default mode
|
|
45
|
+
## PNG Resolution (default mode)
|
|
47
46
|
|
|
48
47
|
Resolve PNGs for the target feature `feat-{name}` in this priority order. The first non-empty source wins. Apply path expansion (above) to every candidate path.
|
|
49
48
|
|
|
@@ -53,7 +52,7 @@ Resolve PNGs for the target feature `feat-{name}` in this priority order. The fi
|
|
|
53
52
|
|
|
54
53
|
If all sources are empty: skip silently (do not write design-spec.md, do not error).
|
|
55
54
|
|
|
56
|
-
If multiple specs share `input/ui/*.png` (collision risk),
|
|
55
|
+
If multiple specs share `input/ui/*.png` (collision risk), Plan must not run this role for any of them and surface an error advising migration to feature-namespaced folders.
|
|
57
56
|
|
|
58
57
|
---
|
|
59
58
|
|
|
@@ -87,4 +86,4 @@ If multiple specs share `input/ui/*.png` (collision risk), the orchestrator MUST
|
|
|
87
86
|
|
|
88
87
|
*Reads: `input/ui/*.png` · `input/tech/stack.md`*
|
|
89
88
|
*Writes: `output/feats/feat-{name}/design-spec.md`*
|
|
90
|
-
*
|
|
89
|
+
*Read by: planr-specification*
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
<!--
|
|
1
|
+
<!-- Default-mode context for planr-devops. Loaded when the caller passes MODE=default. -->
|
|
2
2
|
|
|
3
|
-
> **Mode:** default
|
|
4
|
-
> **Loaded by:** `agents/devops-agent.md` when the orchestrator passes `MODE=default` (no `SPEC_DIR`).
|
|
3
|
+
> **Mode:** default (no `SPEC_DIR`).
|
|
5
4
|
|
|
6
5
|
## Context locations
|
|
7
6
|
|
package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/doc-gen.md
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
<!--
|
|
1
|
+
<!-- Default-mode context for planr-documentation. Loaded when the caller passes MODE=default. -->
|
|
2
2
|
|
|
3
|
-
> **Mode:** default
|
|
4
|
-
> **Loaded by:** `agents/doc-gen-agent.md` when the orchestrator passes `MODE=default` (no `SPEC_DIR`).
|
|
3
|
+
> **Mode:** default (no `SPEC_DIR`).
|
|
5
4
|
|
|
6
5
|
## Path Resolution
|
|
7
6
|
|
|
@@ -34,7 +33,7 @@ Output to `Docs/feat-${ARGUMENTS}/` is mode-agnostic.
|
|
|
34
33
|
|--------|------|-------------|
|
|
35
34
|
| Feature index | `Docs/feat-{name}/README.md` | Overview, US list, links |
|
|
36
35
|
| US summary | `Docs/feat-{name}/us-{N}.md` | Per-US plain-language summary + acceptance criteria |
|
|
37
|
-
| API reference | `Docs/feat-{name}/api.md` | All endpoints with request/response shapes (from
|
|
36
|
+
| API reference | `Docs/feat-{name}/api.md` | All endpoints with request/response shapes (from Tech tasks + actual handlers) |
|
|
38
37
|
| Architecture note | `Docs/feat-{name}/architecture.md` | High-level diagram-as-text, file map, key abstractions |
|
|
39
38
|
|
|
40
39
|
---
|
package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/frontend.md
CHANGED
|
@@ -1,79 +1,40 @@
|
|
|
1
|
-
<!--
|
|
1
|
+
<!-- Default-mode paths for planr-frontend. Loaded when the caller passes MODE=default. -->
|
|
2
2
|
|
|
3
|
-
> **Mode:** default
|
|
4
|
-
> **Loaded by:** `agents/frontend-agent.md` when the orchestrator passes `MODE=default` (no `SPEC_DIR`).
|
|
3
|
+
> **Mode:** default (no `SPEC_DIR`).
|
|
5
4
|
|
|
6
5
|
## Path Resolution
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
Use that exact path first.
|
|
7
|
+
Ship passes the absolute task file path and `MODE=default`. Use that exact path first.
|
|
10
8
|
|
|
11
9
|
- Feature input: `input/specs/spec-{name}.md`.
|
|
12
|
-
- Task: `output/feats/feat-{name}/us-{N}/tasks/task-{M}.md
|
|
10
|
+
- Task: `output/feats/feat-{name}/us-{N}/tasks/task-{M}.md`.
|
|
13
11
|
- Parent story: the `us-{N}.md` beside that task's `tasks/` directory; confirm
|
|
14
12
|
its frontmatter matches the task's `storyId`.
|
|
15
13
|
- Design context: `output/feats/feat-{name}/design-spec.md` when present.
|
|
16
14
|
- Dependencies: resolve each `dependsOn` ID against task frontmatter in the same
|
|
17
|
-
parent story's `tasks/` directory.
|
|
15
|
+
parent story's `tasks/` directory. Task IDs are project-global; only the file
|
|
16
|
+
layout is feature-local.
|
|
18
17
|
|
|
19
18
|
If no exact path was passed but a task ID or slug was, search only below the
|
|
20
19
|
selected `output/feats/feat-{name}/us-*/tasks/` tree and use a match only when it
|
|
21
20
|
is unique. Follow
|
|
22
21
|
`${CLAUDE_PLUGIN_ROOT}/references/agents/shared/modes/shared/task-context-resolution.md` after resolving
|
|
23
|
-
the file.
|
|
22
|
+
the file. Task content is schema-identical in both modes; only paths differ.
|
|
24
23
|
|
|
25
|
-
|
|
24
|
+
## Mode inputs
|
|
26
25
|
|
|
27
|
-
|
|
26
|
+
- The complete parent story and `input/specs/spec-{name}.md`; the story's
|
|
27
|
+
matching Gherkin sidecar when present.
|
|
28
|
+
- `output/feats/feat-{name}/design-spec.md` when it exists, plus the reusable UI
|
|
29
|
+
and design-system implementation already in the repository.
|
|
30
|
+
- `input/tech/stack.md` when present, with every `ActiveStackFiles` entry
|
|
31
|
+
resolved through the installed stack root and the project-local
|
|
32
|
+
`.planr/stacks` overlay.
|
|
33
|
+
- Each declared predecessor's output contract when `dependsOn` is non-empty.
|
|
28
34
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|-------|--------|----------|
|
|
33
|
-
| `output/feats/feat-{name}/us-{N}/tasks/task-1.md` | Specification Agent | Yes |
|
|
34
|
-
| `output/feats/feat-{name}/design-spec.md` | Designer Agent | If exists |
|
|
35
|
-
| `input/tech/stack.md` | Tech Lead | Yes |
|
|
36
|
-
| Existing codebase files (for context) | Dev environment | Read-only for context |
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## Outputs
|
|
41
|
-
|
|
42
|
-
All files listed under `### Create` and `### Modify` in the task file (`output/feats/feat-{name}/us-{N}/tasks/task-1.md`).
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## Implementation guidance
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
1. Load the active UI task and extract frontmatter, Create/Modify/Preserve,
|
|
50
|
-
Technical Spec or Implementation, Verification, and Definition of Done. Read
|
|
51
|
-
the complete parent story and `input/specs/spec-{name}.md`; load the story's
|
|
52
|
-
matching Gherkin sidecar when present.
|
|
53
|
-
2. Load `input/tech/stack.md`. Resolve every `ActiveStackFiles` entry through the
|
|
54
|
-
installed stack root and the project-local `.planr/stacks` overlay as
|
|
55
|
-
defined by the shared task-context guidance.
|
|
56
|
-
3. Read each declared predecessor's output contract when `dependsOn` is non-empty.
|
|
57
|
-
Load `output/feats/feat-{name}/design-spec.md` when it exists.
|
|
58
|
-
4. Read the listed files, reusable UI, design-system implementation, and enough
|
|
59
|
-
connected source to understand established interfaces and patterns.
|
|
60
|
-
5. Implement the requested UI behavior completely using established project and
|
|
61
|
-
design-system patterns. Cover material loading, empty, error, success, and
|
|
62
|
-
accessibility behavior.
|
|
63
|
-
6. Add meaningful component, interaction, and browser coverage where it improves
|
|
64
|
-
confidence.
|
|
65
|
-
7. Treat Create/Modify as expected scope. A directly required companion test,
|
|
66
|
-
story, fixture, route registration, generated file, or configuration change is
|
|
67
|
-
valid when it serves acceptance criteria, stays within frontend ownership, and
|
|
68
|
-
remains outside Preserve. Disclose it in the result.
|
|
69
|
-
8. Keep Preserve paths unchanged. If the requested outcome conflicts with one,
|
|
70
|
-
find a safe in-scope alternative or report the conflict clearly.
|
|
71
|
-
9. Apply `${CLAUDE_PLUGIN_ROOT}/references/agents/shared/modes/shared/verification-and-recovery-frontend.md` for
|
|
72
|
-
adaptive verification and recovery.
|
|
73
|
-
10. Return the shared implementation-result format.
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
---
|
|
35
|
+
Apply `${CLAUDE_PLUGIN_ROOT}/references/agents/shared/modes/shared/verification-and-recovery-frontend.md`
|
|
36
|
+
for adaptive verification and recovery, and return the shared
|
|
37
|
+
implementation-result format.
|
|
77
38
|
|
|
78
39
|
## Error Handling (mode-specific paths)
|
|
79
40
|
|
|
@@ -86,9 +47,3 @@ All files listed under `### Create` and `### Modify` in the task file (`output/f
|
|
|
86
47
|
| Component library unavailable | Report the import/package and affected UI; use an established project alternative when one exists |
|
|
87
48
|
| `dependsOn` output unavailable | Name the dependency and required interface; continue independent work and report the blocked portion |
|
|
88
49
|
| Preserve path changed | Restore it, use another implementation approach, and report a conflict only if no safe approach remains |
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
*Reads: task · parent story/spec · dependency outputs · stack overlays · design · source*
|
|
93
|
-
*Writes: UI layer files only*
|
|
94
|
-
*Runs in parallel with: Backend Agent (task-2)*
|
package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/specification.md
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
<!--
|
|
1
|
+
<!-- Default-mode paths for planr-specification. Loaded when the caller passes MODE=default. -->
|
|
2
2
|
|
|
3
|
-
> **Mode:** default
|
|
4
|
-
> **Loaded by:** `agents/specification-agent.md` when the orchestrator passes `MODE=default` (no `SPEC_DIR`).
|
|
3
|
+
> **Mode:** default (no `SPEC_DIR`).
|
|
5
4
|
|
|
6
5
|
## Path Resolution
|
|
7
6
|
|
|
@@ -31,8 +30,7 @@ names retain their established feature-local layout.
|
|
|
31
30
|
| Output | Path | Description |
|
|
32
31
|
|--------|------|-------------|
|
|
33
32
|
| User Story N | `output/feats/feat-{name}/us-{N}/us-{N}.md` | One file per US |
|
|
34
|
-
| Task M
|
|
35
|
-
| Task M (Tech) | `output/feats/feat-{name}/us-{N}/tasks/task-1.md` without design; `task-2.md` with design | Tech layer task |
|
|
33
|
+
| Task M | `output/feats/feat-{name}/us-{N}/tasks/task-{M}.md` | One file per task, numbered from `task-1.md` in the order written; `type` and `agent` in the frontmatter say which role implements it |
|
|
36
34
|
|
|
37
35
|
---
|
|
38
36
|
|
|
@@ -69,13 +67,13 @@ names retain their established feature-local layout.
|
|
|
69
67
|
5. Decompose the source into independently valuable User Stories and write each
|
|
70
68
|
story to `output/feats/feat-$ARGUMENTS/us-{N}/us-{N}.md` using the canonical
|
|
71
69
|
story frontmatter and body shape.
|
|
72
|
-
6. For each story, create its `tasks/` directory and apply R2
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
70
|
+
6. For each story, create its `tasks/` directory and apply R2 (coherent,
|
|
71
|
+
independently verifiable tasks split by ownership): UI work is a
|
|
72
|
+
`type: "UI"` / `agent: "frontend-agent"` task and server or data work is a
|
|
73
|
+
`type: "Tech"` / `agent: "backend-agent"` task. Most stories get one Tech
|
|
74
|
+
task, plus one UI task when `has_design = true`; add a task only for a real
|
|
75
|
+
output dependency, a distinct verification surface, or reviewable size.
|
|
76
|
+
Number files `task-1.md`, `task-2.md`, ... in the order written.
|
|
79
77
|
7. Populate every task with its required Protocol 1.7 schema fields, mode parent
|
|
80
78
|
`featureSlug`, 1–3 sentence `rationale`, concrete Create/Modify paths,
|
|
81
79
|
verification, and `preserve` block maps with exact `repositoryKey` and `path`
|