@specforge/cli 0.1.0 → 0.2.5
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/dist/cli/commands/debug/register.js +1 -1
- package/dist/cli/commands/debug/register.js.map +1 -1
- package/dist/cli/commands/debug/types.d.ts.map +1 -1
- package/dist/cli/commands/debug/types.js +4 -2
- package/dist/cli/commands/debug/types.js.map +1 -1
- package/dist/cli/commands/init.types.d.ts +4 -4
- package/dist/cli/commands/init.types.d.ts.map +1 -1
- package/dist/cli/commands/init.types.js.map +1 -1
- package/dist/cli/commands/scaffold/agent-types.js +1 -1
- package/dist/cli/commands/scaffold/agent-types.js.map +1 -1
- package/dist/cli/config/agent-teams.types.d.ts +35 -12
- package/dist/cli/config/agent-teams.types.d.ts.map +1 -1
- package/dist/cli/config/agent-teams.types.js.map +1 -1
- package/dist/cli/templates/agents/content/core/sfag-orchestrator.d.ts +21 -3
- package/dist/cli/templates/agents/content/core/sfag-orchestrator.d.ts.map +1 -1
- package/dist/cli/templates/agents/content/core/sfag-orchestrator.js +114 -48
- package/dist/cli/templates/agents/content/core/sfag-orchestrator.js.map +1 -1
- package/dist/cli/templates/agents/content/core/sfag-spec-creator.d.ts.map +1 -1
- package/dist/cli/templates/agents/content/core/sfag-spec-creator.js +124 -83
- package/dist/cli/templates/agents/content/core/sfag-spec-creator.js.map +1 -1
- package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.d.ts +22 -3
- package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.d.ts.map +1 -1
- package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.js +225 -160
- package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.js.map +1 -1
- package/dist/cli/templates/agents/content/core/sfag-work-resolver.d.ts +16 -0
- package/dist/cli/templates/agents/content/core/sfag-work-resolver.d.ts.map +1 -0
- package/dist/cli/templates/agents/content/core/sfag-work-resolver.js +199 -0
- package/dist/cli/templates/agents/content/core/sfag-work-resolver.js.map +1 -0
- package/dist/cli/templates/agents/index.d.ts.map +1 -1
- package/dist/cli/templates/agents/index.js +2 -0
- package/dist/cli/templates/agents/index.js.map +1 -1
- package/dist/cli/templates/content/sf-commit.d.ts +1 -1
- package/dist/cli/templates/content/sf-commit.d.ts.map +1 -1
- package/dist/cli/templates/content/sf-commit.js +2 -2
- package/dist/cli/templates/content/sf-commit.js.map +1 -1
- package/dist/cli/templates/content/sf-reset.d.ts +5 -2
- package/dist/cli/templates/content/sf-reset.d.ts.map +1 -1
- package/dist/cli/templates/content/sf-reset.js +41 -27
- package/dist/cli/templates/content/sf-reset.js.map +1 -1
- package/dist/lib/prompt-generator.d.ts +15 -3
- package/dist/lib/prompt-generator.d.ts.map +1 -1
- package/dist/lib/prompt-generator.js +14 -6
- package/dist/lib/prompt-generator.js.map +1 -1
- package/dist/lib/workflow-definitions.js +2 -2
- package/dist/lib/workflow-definitions.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/__tests__/complete-planning-double-call.test.d.ts +2 -0
- package/dist/tools/__tests__/complete-planning-double-call.test.d.ts.map +1 -0
- package/dist/tools/core/__tests__/file-existence-injection.test.d.ts +2 -0
- package/dist/tools/core/__tests__/file-existence-injection.test.d.ts.map +1 -0
- package/dist/tools/core/__tests__/git-injection.test.d.ts +2 -0
- package/dist/tools/core/__tests__/git-injection.test.d.ts.map +1 -0
- package/dist/tools/core/file-existence-injection.d.ts +22 -0
- package/dist/tools/core/file-existence-injection.d.ts.map +1 -0
- package/dist/tools/core/file-existence-injection.js +49 -0
- package/dist/tools/core/file-existence-injection.js.map +1 -0
- package/dist/tools/core/git-injection.d.ts +58 -0
- package/dist/tools/core/git-injection.d.ts.map +1 -0
- package/dist/tools/core/git-injection.js +79 -0
- package/dist/tools/core/git-injection.js.map +1 -0
- package/dist/tools/core/index.d.ts +1 -0
- package/dist/tools/core/index.d.ts.map +1 -1
- package/dist/tools/core/index.js +1 -0
- package/dist/tools/core/index.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +358 -440
- package/dist/tools/index.js.map +1 -1
- package/dist/transport/__tests__/remote.test.d.ts +2 -0
- package/dist/transport/__tests__/remote.test.d.ts.map +1 -0
- package/dist/transport/remote.d.ts.map +1 -1
- package/dist/transport/remote.js +23 -4
- package/dist/transport/remote.js.map +1 -1
- package/dist/types/index.d.ts +12 -32
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +0 -15
- package/dist/validation/index.js.map +1 -1
- package/node_modules/@specforge/api-types/README.md +38 -0
- package/node_modules/@specforge/api-types/dist/client/appsync-client.d.ts +21 -0
- package/node_modules/@specforge/api-types/dist/client/appsync-client.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/client/appsync-client.js +2 -0
- package/node_modules/@specforge/api-types/dist/client/appsync-client.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/client/index.d.ts +2 -0
- package/node_modules/@specforge/api-types/dist/client/index.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/client/index.js +2 -0
- package/node_modules/@specforge/api-types/dist/client/index.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/index.d.ts +5 -0
- package/node_modules/@specforge/api-types/dist/index.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/index.js +9 -0
- package/node_modules/@specforge/api-types/dist/index.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/mcp/error-guidance.d.ts +74 -0
- package/node_modules/@specforge/api-types/dist/mcp/error-guidance.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/mcp/error-guidance.js +21 -0
- package/node_modules/@specforge/api-types/dist/mcp/error-guidance.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/mcp/index.d.ts +4 -0
- package/node_modules/@specforge/api-types/dist/mcp/index.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/mcp/index.js +8 -0
- package/node_modules/@specforge/api-types/dist/mcp/index.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/mcp/lifecycle-envelope.d.ts +18 -0
- package/node_modules/@specforge/api-types/dist/mcp/lifecycle-envelope.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/mcp/lifecycle-envelope.js +2 -0
- package/node_modules/@specforge/api-types/dist/mcp/lifecycle-envelope.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/mcp/standard-envelope.d.ts +39 -0
- package/node_modules/@specforge/api-types/dist/mcp/standard-envelope.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/mcp/standard-envelope.js +2 -0
- package/node_modules/@specforge/api-types/dist/mcp/standard-envelope.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/billing-record.d.ts +18 -0
- package/node_modules/@specforge/api-types/dist/runtime/billing-record.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/billing-record.js +7 -0
- package/node_modules/@specforge/api-types/dist/runtime/billing-record.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/blueprint-record.d.ts +40 -0
- package/node_modules/@specforge/api-types/dist/runtime/blueprint-record.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/blueprint-record.js +19 -0
- package/node_modules/@specforge/api-types/dist/runtime/blueprint-record.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/dependency-tree.d.ts +96 -0
- package/node_modules/@specforge/api-types/dist/runtime/dependency-tree.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/dependency-tree.js +23 -0
- package/node_modules/@specforge/api-types/dist/runtime/dependency-tree.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/epic-record.d.ts +117 -0
- package/node_modules/@specforge/api-types/dist/runtime/epic-record.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/epic-record.js +13 -0
- package/node_modules/@specforge/api-types/dist/runtime/epic-record.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/feedback-record.d.ts +27 -0
- package/node_modules/@specforge/api-types/dist/runtime/feedback-record.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/feedback-record.js +7 -0
- package/node_modules/@specforge/api-types/dist/runtime/feedback-record.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/fields.d.ts +31 -0
- package/node_modules/@specforge/api-types/dist/runtime/fields.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/fields.js +156 -0
- package/node_modules/@specforge/api-types/dist/runtime/fields.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/index.d.ts +18 -0
- package/node_modules/@specforge/api-types/dist/runtime/index.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/index.js +18 -0
- package/node_modules/@specforge/api-types/dist/runtime/index.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/pagination.d.ts +38 -0
- package/node_modules/@specforge/api-types/dist/runtime/pagination.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/pagination.js +54 -0
- package/node_modules/@specforge/api-types/dist/runtime/pagination.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-invitation.d.ts +14 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-invitation.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-invitation.js +2 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-invitation.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-member.d.ts +13 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-member.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-member.js +2 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-member.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-validation.d.ts +26 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-validation.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-validation.js +5 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-validation.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/project.d.ts +55 -0
- package/node_modules/@specforge/api-types/dist/runtime/project.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/project.js +10 -0
- package/node_modules/@specforge/api-types/dist/runtime/project.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/response.d.ts +22 -0
- package/node_modules/@specforge/api-types/dist/runtime/response.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/response.js +14 -0
- package/node_modules/@specforge/api-types/dist/runtime/response.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/specification-record.d.ts +90 -0
- package/node_modules/@specforge/api-types/dist/runtime/specification-record.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/specification-record.js +11 -0
- package/node_modules/@specforge/api-types/dist/runtime/specification-record.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/status.d.ts +26 -0
- package/node_modules/@specforge/api-types/dist/runtime/status.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/status.js +56 -0
- package/node_modules/@specforge/api-types/dist/runtime/status.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/summary.d.ts +58 -0
- package/node_modules/@specforge/api-types/dist/runtime/summary.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/summary.js +42 -0
- package/node_modules/@specforge/api-types/dist/runtime/summary.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/ticket-record.d.ts +212 -0
- package/node_modules/@specforge/api-types/dist/runtime/ticket-record.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/ticket-record.js +18 -0
- package/node_modules/@specforge/api-types/dist/runtime/ticket-record.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/user.d.ts +13 -0
- package/node_modules/@specforge/api-types/dist/runtime/user.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/user.js +9 -0
- package/node_modules/@specforge/api-types/dist/runtime/user.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-billing-store.d.ts +17 -0
- package/node_modules/@specforge/api-types/dist/stores/i-billing-store.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-billing-store.js +2 -0
- package/node_modules/@specforge/api-types/dist/stores/i-billing-store.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-blueprint-store.d.ts +59 -0
- package/node_modules/@specforge/api-types/dist/stores/i-blueprint-store.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-blueprint-store.js +2 -0
- package/node_modules/@specforge/api-types/dist/stores/i-blueprint-store.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-epic-store.d.ts +120 -0
- package/node_modules/@specforge/api-types/dist/stores/i-epic-store.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-epic-store.js +2 -0
- package/node_modules/@specforge/api-types/dist/stores/i-epic-store.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-feedback-store.d.ts +13 -0
- package/node_modules/@specforge/api-types/dist/stores/i-feedback-store.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-feedback-store.js +2 -0
- package/node_modules/@specforge/api-types/dist/stores/i-feedback-store.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-project-store.d.ts +48 -0
- package/node_modules/@specforge/api-types/dist/stores/i-project-store.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-project-store.js +2 -0
- package/node_modules/@specforge/api-types/dist/stores/i-project-store.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-sharing-store.d.ts +37 -0
- package/node_modules/@specforge/api-types/dist/stores/i-sharing-store.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-sharing-store.js +2 -0
- package/node_modules/@specforge/api-types/dist/stores/i-sharing-store.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-spec-store.d.ts +159 -0
- package/node_modules/@specforge/api-types/dist/stores/i-spec-store.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-spec-store.js +2 -0
- package/node_modules/@specforge/api-types/dist/stores/i-spec-store.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-ticket-dependency-store.d.ts +87 -0
- package/node_modules/@specforge/api-types/dist/stores/i-ticket-dependency-store.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-ticket-dependency-store.js +2 -0
- package/node_modules/@specforge/api-types/dist/stores/i-ticket-dependency-store.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-ticket-store.d.ts +347 -0
- package/node_modules/@specforge/api-types/dist/stores/i-ticket-store.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-ticket-store.js +2 -0
- package/node_modules/@specforge/api-types/dist/stores/i-ticket-store.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-user-store.d.ts +5 -0
- package/node_modules/@specforge/api-types/dist/stores/i-user-store.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-user-store.js +2 -0
- package/node_modules/@specforge/api-types/dist/stores/i-user-store.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/index.d.ts +11 -0
- package/node_modules/@specforge/api-types/dist/stores/index.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/index.js +11 -0
- package/node_modules/@specforge/api-types/dist/stores/index.js.map +1 -0
- package/node_modules/@specforge/api-types/package.json +43 -0
- package/node_modules/@specforge/report-types/README.md +11 -0
- package/node_modules/@specforge/report-types/dist/index.d.ts +2 -0
- package/node_modules/@specforge/report-types/dist/index.d.ts.map +1 -0
- package/node_modules/@specforge/report-types/dist/index.js +2 -0
- package/node_modules/@specforge/report-types/dist/index.js.map +1 -0
- package/node_modules/@specforge/report-types/dist/reports.d.ts +90 -0
- package/node_modules/@specforge/report-types/dist/reports.d.ts.map +1 -0
- package/node_modules/@specforge/report-types/dist/reports.js +15 -0
- package/node_modules/@specforge/report-types/dist/reports.js.map +1 -0
- package/node_modules/@specforge/report-types/package.json +40 -0
- package/node_modules/@specforge/session-types/CHANGELOG.md +56 -0
- package/node_modules/@specforge/session-types/README.md +18 -0
- package/node_modules/@specforge/session-types/dist/index.d.ts +47 -0
- package/node_modules/@specforge/session-types/dist/index.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/index.js +47 -0
- package/node_modules/@specforge/session-types/dist/index.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/aggregator-input.d.ts +46 -0
- package/node_modules/@specforge/session-types/dist/runtime/aggregator-input.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/aggregator-input.js +41 -0
- package/node_modules/@specforge/session-types/dist/runtime/aggregator-input.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/discovery.d.ts +9 -0
- package/node_modules/@specforge/session-types/dist/runtime/discovery.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/discovery.js +2 -0
- package/node_modules/@specforge/session-types/dist/runtime/discovery.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/enums.d.ts +51 -0
- package/node_modules/@specforge/session-types/dist/runtime/enums.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/enums.js +161 -0
- package/node_modules/@specforge/session-types/dist/runtime/enums.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/implementation-config.d.ts +177 -0
- package/node_modules/@specforge/session-types/dist/runtime/implementation-config.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/implementation-config.js +96 -0
- package/node_modules/@specforge/session-types/dist/runtime/implementation-config.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/implementation-record-event.d.ts +8 -0
- package/node_modules/@specforge/session-types/dist/runtime/implementation-record-event.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/implementation-record-event.js +2 -0
- package/node_modules/@specforge/session-types/dist/runtime/implementation-record-event.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/implementation-session-aggregate.d.ts +489 -0
- package/node_modules/@specforge/session-types/dist/runtime/implementation-session-aggregate.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/implementation-session-aggregate.js +152 -0
- package/node_modules/@specforge/session-types/dist/runtime/implementation-session-aggregate.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/implementation-session.d.ts +8 -0
- package/node_modules/@specforge/session-types/dist/runtime/implementation-session.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/implementation-session.js +2 -0
- package/node_modules/@specforge/session-types/dist/runtime/implementation-session.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/lifecycle-contract.d.ts +319 -0
- package/node_modules/@specforge/session-types/dist/runtime/lifecycle-contract.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/lifecycle-contract.js +2 -0
- package/node_modules/@specforge/session-types/dist/runtime/lifecycle-contract.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/lifecycle-planning-guidance.d.ts +128 -0
- package/node_modules/@specforge/session-types/dist/runtime/lifecycle-planning-guidance.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/lifecycle-planning-guidance.js +30 -0
- package/node_modules/@specforge/session-types/dist/runtime/lifecycle-planning-guidance.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/parsed-git-evidence.d.ts +4 -0
- package/node_modules/@specforge/session-types/dist/runtime/parsed-git-evidence.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/parsed-git-evidence.js +2 -0
- package/node_modules/@specforge/session-types/dist/runtime/parsed-git-evidence.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-config.d.ts +82 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-config.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-config.js +61 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-config.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-entity-score-datapoint.d.ts +34 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-entity-score-datapoint.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-entity-score-datapoint.js +14 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-entity-score-datapoint.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-operations.d.ts +6 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-operations.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-operations.js +65 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-operations.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-phase-transition.d.ts +34 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-phase-transition.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-phase-transition.js +22 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-phase-transition.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-session-action.d.ts +73 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-session-action.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-session-action.js +61 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-session-action.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-session-aggregate.d.ts +249 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-session-aggregate.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-session-aggregate.js +96 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-session-aggregate.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-session.d.ts +574 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-session.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-session.js +40 -0
- package/node_modules/@specforge/session-types/dist/runtime/planning-session.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/process-guidance.d.ts +221 -0
- package/node_modules/@specforge/session-types/dist/runtime/process-guidance.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/process-guidance.js +41 -0
- package/node_modules/@specforge/session-types/dist/runtime/process-guidance.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-acceptance-check.d.ts +4 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-acceptance-check.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-acceptance-check.js +2 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-acceptance-check.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-action.d.ts +9 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-action.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-action.js +2 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-action.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-file-change.d.ts +4 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-file-change.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-file-change.js +2 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-file-change.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-impl-step-completion.d.ts +4 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-impl-step-completion.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-impl-step-completion.js +2 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-impl-step-completion.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-resolution.d.ts +4 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-resolution.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-resolution.js +2 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-resolution.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-test-result.d.ts +4 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-test-result.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-test-result.js +2 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session-test-result.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session.d.ts +4 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session.js +2 -0
- package/node_modules/@specforge/session-types/dist/runtime/work-session.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/working-context.d.ts +43 -0
- package/node_modules/@specforge/session-types/dist/runtime/working-context.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/working-context.js +2 -0
- package/node_modules/@specforge/session-types/dist/runtime/working-context.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/write-plan.d.ts +146 -0
- package/node_modules/@specforge/session-types/dist/runtime/write-plan.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/runtime/write-plan.js +2 -0
- package/node_modules/@specforge/session-types/dist/runtime/write-plan.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/discovery.d.ts +76 -0
- package/node_modules/@specforge/session-types/dist/schema/discovery.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/discovery.js +42 -0
- package/node_modules/@specforge/session-types/dist/schema/discovery.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/implementation-record-event.d.ts +48 -0
- package/node_modules/@specforge/session-types/dist/schema/implementation-record-event.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/implementation-record-event.js +28 -0
- package/node_modules/@specforge/session-types/dist/schema/implementation-record-event.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/implementation-session.d.ts +37 -0
- package/node_modules/@specforge/session-types/dist/schema/implementation-session.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/implementation-session.js +24 -0
- package/node_modules/@specforge/session-types/dist/schema/implementation-session.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/index.d.ts +12 -0
- package/node_modules/@specforge/session-types/dist/schema/index.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/index.js +12 -0
- package/node_modules/@specforge/session-types/dist/schema/index.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/parsed-git-evidence.d.ts +74 -0
- package/node_modules/@specforge/session-types/dist/schema/parsed-git-evidence.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/parsed-git-evidence.js +31 -0
- package/node_modules/@specforge/session-types/dist/schema/parsed-git-evidence.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-acceptance-check.d.ts +27 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-acceptance-check.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-acceptance-check.js +11 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-acceptance-check.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-action.d.ts +94 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-action.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-action.js +76 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-action.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-file-change.d.ts +42 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-file-change.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-file-change.js +25 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-file-change.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-impl-step-completion.d.ts +27 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-impl-step-completion.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-impl-step-completion.js +11 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-impl-step-completion.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-resolution.d.ts +42 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-resolution.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-resolution.js +28 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-resolution.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-test-result.d.ts +72 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-test-result.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-test-result.js +43 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session-test-result.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session.d.ts +203 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session.js +86 -0
- package/node_modules/@specforge/session-types/dist/schema/work-session.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/config-store-interface.d.ts +17 -0
- package/node_modules/@specforge/session-types/dist/stores/config-store-interface.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/config-store-interface.js +2 -0
- package/node_modules/@specforge/session-types/dist/stores/config-store-interface.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/discovery-store.d.ts +31 -0
- package/node_modules/@specforge/session-types/dist/stores/discovery-store.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/discovery-store.js +2 -0
- package/node_modules/@specforge/session-types/dist/stores/discovery-store.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/implementation-record-event-store.d.ts +19 -0
- package/node_modules/@specforge/session-types/dist/stores/implementation-record-event-store.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/implementation-record-event-store.js +2 -0
- package/node_modules/@specforge/session-types/dist/stores/implementation-record-event-store.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/implementation-session-aggregate-store.d.ts +16 -0
- package/node_modules/@specforge/session-types/dist/stores/implementation-session-aggregate-store.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/implementation-session-aggregate-store.js +2 -0
- package/node_modules/@specforge/session-types/dist/stores/implementation-session-aggregate-store.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/implementation-session-store.d.ts +28 -0
- package/node_modules/@specforge/session-types/dist/stores/implementation-session-store.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/implementation-session-store.js +2 -0
- package/node_modules/@specforge/session-types/dist/stores/implementation-session-store.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/planning-entity-score-datapoint-store.d.ts +12 -0
- package/node_modules/@specforge/session-types/dist/stores/planning-entity-score-datapoint-store.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/planning-entity-score-datapoint-store.js +2 -0
- package/node_modules/@specforge/session-types/dist/stores/planning-entity-score-datapoint-store.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/planning-phase-transition-store.d.ts +10 -0
- package/node_modules/@specforge/session-types/dist/stores/planning-phase-transition-store.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/planning-phase-transition-store.js +2 -0
- package/node_modules/@specforge/session-types/dist/stores/planning-phase-transition-store.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/planning-session-action-store.d.ts +13 -0
- package/node_modules/@specforge/session-types/dist/stores/planning-session-action-store.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/planning-session-action-store.js +2 -0
- package/node_modules/@specforge/session-types/dist/stores/planning-session-action-store.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/planning-session-aggregate-store.d.ts +10 -0
- package/node_modules/@specforge/session-types/dist/stores/planning-session-aggregate-store.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/planning-session-aggregate-store.js +2 -0
- package/node_modules/@specforge/session-types/dist/stores/planning-session-aggregate-store.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/planning-session-store.d.ts +20 -0
- package/node_modules/@specforge/session-types/dist/stores/planning-session-store.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/planning-session-store.js +2 -0
- package/node_modules/@specforge/session-types/dist/stores/planning-session-store.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-acceptance-check-store.d.ts +15 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-acceptance-check-store.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-acceptance-check-store.js +2 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-acceptance-check-store.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-action-store.d.ts +29 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-action-store.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-action-store.js +2 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-action-store.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-file-change-store.d.ts +9 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-file-change-store.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-file-change-store.js +2 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-file-change-store.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-impl-step-completion-store.d.ts +9 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-impl-step-completion-store.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-impl-step-completion-store.js +2 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-impl-step-completion-store.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-resolution-store.d.ts +10 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-resolution-store.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-resolution-store.js +2 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-resolution-store.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-store.d.ts +23 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-store.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-store.js +2 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-store.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-test-result-store.d.ts +8 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-test-result-store.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-test-result-store.js +2 -0
- package/node_modules/@specforge/session-types/dist/stores/work-session-test-result-store.js.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/working-context-store.d.ts +27 -0
- package/node_modules/@specforge/session-types/dist/stores/working-context-store.d.ts.map +1 -0
- package/node_modules/@specforge/session-types/dist/stores/working-context-store.js +2 -0
- package/node_modules/@specforge/session-types/dist/stores/working-context-store.js.map +1 -0
- package/node_modules/@specforge/session-types/package.json +43 -0
- package/node_modules/@specforge/spec-types/README.md +28 -0
- package/node_modules/@specforge/spec-types/dist/index.d.ts +4 -0
- package/node_modules/@specforge/spec-types/dist/index.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/index.js +6 -0
- package/node_modules/@specforge/spec-types/dist/index.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/json-schema/v1.1/openspec.schema.json +1129 -0
- package/node_modules/@specforge/spec-types/dist/openspec-schema.d.ts +4 -0
- package/node_modules/@specforge/spec-types/dist/openspec-schema.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/openspec-schema.js +77 -0
- package/node_modules/@specforge/spec-types/dist/openspec-schema.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/auxiliary.d.ts +14 -0
- package/node_modules/@specforge/spec-types/dist/runtime/auxiliary.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/auxiliary.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/auxiliary.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/blueprint.d.ts +7 -0
- package/node_modules/@specforge/spec-types/dist/runtime/blueprint.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/blueprint.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/blueprint.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/epic.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/epic.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/epic.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/epic.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/index.d.ts +7 -0
- package/node_modules/@specforge/spec-types/dist/runtime/index.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/index.js +7 -0
- package/node_modules/@specforge/spec-types/dist/runtime/index.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/api-contract.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/api-contract.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/api-contract.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/api-contract.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/goal.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/goal.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/goal.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/goal.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/guardrail.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/guardrail.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/guardrail.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/guardrail.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/index.d.ts +10 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/index.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/index.js +10 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/index.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/nfr.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/nfr.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/nfr.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/nfr.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/requirement.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/requirement.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/requirement.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/requirement.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/scope.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/scope.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/scope.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/scope.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/shared-pattern.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/shared-pattern.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/shared-pattern.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/shared-pattern.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/structure-item.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/structure-item.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/structure-item.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/structure-item.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/tech-stack.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/tech-stack.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/tech-stack.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/tech-stack.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/specification.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/specification.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/specification.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/specification.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/ticket.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/ticket.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/ticket.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/ticket.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/auxiliary.d.ts +266 -0
- package/node_modules/@specforge/spec-types/dist/schema/auxiliary.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/auxiliary.js +143 -0
- package/node_modules/@specforge/spec-types/dist/schema/auxiliary.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/blueprint.d.ts +47 -0
- package/node_modules/@specforge/spec-types/dist/schema/blueprint.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/blueprint.js +33 -0
- package/node_modules/@specforge/spec-types/dist/schema/blueprint.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/entity-field-schemas.d.ts +33 -0
- package/node_modules/@specforge/spec-types/dist/schema/entity-field-schemas.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/entity-field-schemas.js +181 -0
- package/node_modules/@specforge/spec-types/dist/schema/entity-field-schemas.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/epic.d.ts +955 -0
- package/node_modules/@specforge/spec-types/dist/schema/epic.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/epic.js +33 -0
- package/node_modules/@specforge/spec-types/dist/schema/epic.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/index.d.ts +12 -0
- package/node_modules/@specforge/spec-types/dist/schema/index.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/index.js +25 -0
- package/node_modules/@specforge/spec-types/dist/schema/index.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/node-verb-steps.d.ts +174 -0
- package/node_modules/@specforge/spec-types/dist/schema/node-verb-steps.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/node-verb-steps.js +317 -0
- package/node_modules/@specforge/spec-types/dist/schema/node-verb-steps.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/patterns.d.ts +274 -0
- package/node_modules/@specforge/spec-types/dist/schema/patterns.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/patterns.js +106 -0
- package/node_modules/@specforge/spec-types/dist/schema/patterns.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/api-contract.d.ts +44 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/api-contract.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/api-contract.js +13 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/api-contract.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/epic-category.d.ts +21 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/epic-category.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/epic-category.js +14 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/epic-category.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/goal.d.ts +27 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/goal.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/goal.js +13 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/goal.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/guardrail.d.ts +29 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/guardrail.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/guardrail.js +14 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/guardrail.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/index.d.ts +12 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/index.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/index.js +12 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/index.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/nfr.d.ts +27 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/nfr.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/nfr.js +15 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/nfr.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/planning-type.d.ts +17 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/planning-type.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/planning-type.js +16 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/planning-type.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/requirement.d.ts +63 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/requirement.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/requirement.js +16 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/requirement.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/scope.d.ts +19 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/scope.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/scope.js +8 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/scope.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/shared-pattern.d.ts +51 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/shared-pattern.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/shared-pattern.js +16 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/shared-pattern.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/structure-item.d.ts +19 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/structure-item.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/structure-item.js +8 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/structure-item.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/tech-stack.d.ts +27 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/tech-stack.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/tech-stack.js +14 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/tech-stack.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/specification.d.ts +1839 -0
- package/node_modules/@specforge/spec-types/dist/schema/specification.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/specification.js +43 -0
- package/node_modules/@specforge/spec-types/dist/schema/specification.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/step-link-coverage.d.ts +58 -0
- package/node_modules/@specforge/spec-types/dist/schema/step-link-coverage.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/step-link-coverage.js +73 -0
- package/node_modules/@specforge/spec-types/dist/schema/step-link-coverage.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/step-link-ids.d.ts +71 -0
- package/node_modules/@specforge/spec-types/dist/schema/step-link-ids.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/step-link-ids.js +96 -0
- package/node_modules/@specforge/spec-types/dist/schema/step-link-ids.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/ticket.d.ts +444 -0
- package/node_modules/@specforge/spec-types/dist/schema/ticket.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/ticket.js +49 -0
- package/node_modules/@specforge/spec-types/dist/schema/ticket.js.map +1 -0
- package/node_modules/@specforge/spec-types/package.json +41 -0
- package/package.json +40 -25
- package/src/cli/templates/agents/content/core/sfag-orchestrator.ts +135 -51
- package/src/cli/templates/agents/content/core/sfag-spec-creator.ts +124 -83
- package/src/cli/templates/agents/content/core/sfag-ticket-implementer.ts +247 -163
- package/src/cli/templates/agents/content/core/sfag-work-resolver.ts +211 -0
- package/src/cli/templates/agents/index.ts +2 -0
- package/src/cli/templates/content/sf-commit.ts +2 -2
- package/src/cli/templates/content/sf-reset.ts +45 -28
- package/src/cli/templates/skills/specforge-orchestrator.md +15 -10
- package/src/cli/templates/skills/specforge-worker.md +4 -3
|
@@ -1,33 +1,52 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* SFAG-Ticket-Implementer Agent Template
|
|
2
|
+
* SFAG-Ticket-Implementer Agent Template v3 (M23.4)
|
|
3
3
|
*
|
|
4
|
-
* SpecForge ticket implementation
|
|
5
|
-
*
|
|
4
|
+
* Autonomous SpecForge ticket implementation over the WORK lifecycle
|
|
5
|
+
* (SWS/AWS/CWS). Rewritten for the assay-scored work model:
|
|
6
|
+
*
|
|
7
|
+
* - start_work_session (SWS) begins/resumes work on a `ready` ticket and
|
|
8
|
+
* returns the full orientation (context + plan + the assay action briefing);
|
|
9
|
+
* it enforces the git-clean precondition — a dirty worktree denies SWS.
|
|
10
|
+
* - action_work_session (AWS) records progress with the assay ACTION VOCAB —
|
|
11
|
+
* mark steps/AC, record tests/files, and justify skips/failures/divergences —
|
|
12
|
+
* worked in the assay-driven order Implementation steps → Tests → Files →
|
|
13
|
+
* Acceptance criteria. Each call re-runs the assay; the agent reads the
|
|
14
|
+
* returned guidance/progress/coherence.
|
|
15
|
+
* - complete_work_session (CWS) runs the completion gates and finalizes.
|
|
16
|
+
*
|
|
17
|
+
* This agent RECORDS blockers/discoveries (create_discovery); it does NOT
|
|
18
|
+
* resolve them — that is the human's `resolve_discovery` (web app) + the
|
|
19
|
+
* sfag-work-resolver chat agent. There is no `clear_ticket_block`,
|
|
20
|
+
* `set_ticket_blocked`, or coarse session-reset verb.
|
|
21
|
+
*
|
|
22
|
+
* Fully autonomous — zero human touch. The agent picks the next `ready` ticket,
|
|
23
|
+
* implements it, records everything, and on a blocking discovery moves to the
|
|
24
|
+
* next `ready` ticket without waiting for a human.
|
|
6
25
|
*/
|
|
7
26
|
|
|
8
27
|
import type { AgentTemplate } from '../../../../commands/scaffold/agent-types.js';
|
|
9
28
|
|
|
10
29
|
export const SFAG_TICKET_IMPLEMENTER: AgentTemplate = {
|
|
11
30
|
name: 'sfag-ticket-implementer',
|
|
12
|
-
description: 'Implement SpecForge tickets
|
|
13
|
-
triggerDescription: `Use this agent
|
|
31
|
+
description: 'Implement SpecForge tickets autonomously over the work lifecycle (SWS/AWS/CWS)',
|
|
32
|
+
triggerDescription: `Use this agent to implement tickets from a SpecForge specification autonomously. It runs the full work lifecycle: start_work_session → action_work_session (record steps/AC/tests/files) → complete_work_session, picking up ready tickets and driving them to done without human intervention.
|
|
14
33
|
|
|
15
34
|
<example>
|
|
16
35
|
Context: User wants to implement a specific ticket
|
|
17
36
|
user: "Implementa o ticket AUTH-003"
|
|
18
|
-
assistant: "Launching sfag-ticket-implementer to
|
|
37
|
+
assistant: "Launching sfag-ticket-implementer to run AUTH-003 through the work lifecycle."
|
|
19
38
|
</example>
|
|
20
39
|
|
|
21
40
|
<example>
|
|
22
|
-
Context: User
|
|
23
|
-
user: "Pega o próximo ticket"
|
|
24
|
-
assistant: "Launching sfag-ticket-implementer to pick up the next
|
|
41
|
+
Context: User wants the agent to keep implementing ready tickets
|
|
42
|
+
user: "Pega o próximo ticket pronto e implementa"
|
|
43
|
+
assistant: "Launching sfag-ticket-implementer to pick up the next ready ticket and implement it end to end."
|
|
25
44
|
</example>
|
|
26
45
|
|
|
27
46
|
<example>
|
|
28
|
-
Context:
|
|
29
|
-
user: "
|
|
30
|
-
assistant: "Launching sfag-ticket-implementer
|
|
47
|
+
Context: A paused session needs to be resumed after a discovery was resolved
|
|
48
|
+
user: "O ticket foi desbloqueado, continua a implementação"
|
|
49
|
+
assistant: "Launching sfag-ticket-implementer — start_work_session re-attaches the paused session and continues."
|
|
31
50
|
</example>`,
|
|
32
51
|
model: 'sonnet',
|
|
33
52
|
color: 'blue',
|
|
@@ -35,7 +54,10 @@ assistant: "Launching sfag-ticket-implementer to resume the implementation sessi
|
|
|
35
54
|
memory: 'project',
|
|
36
55
|
content: `# SpecForge Ticket Implementer Agent
|
|
37
56
|
|
|
38
|
-
You implement SpecForge tickets
|
|
57
|
+
You implement SpecForge tickets over the **work lifecycle**. You are fully autonomous:
|
|
58
|
+
you pick a ready ticket, implement it, record every dimension through the assay, and
|
|
59
|
+
complete it — no human in the loop, no approvals to wait on. You follow the lifecycle
|
|
60
|
+
exactly. You track everything. You do not skip steps.
|
|
39
61
|
|
|
40
62
|
## Context Bootstrapping
|
|
41
63
|
|
|
@@ -45,215 +67,277 @@ Read .specforge.json from project root → extract:
|
|
|
45
67
|
- project.id → projectId
|
|
46
68
|
- activeSpecification.id → specificationId
|
|
47
69
|
\`\`\`
|
|
48
|
-
All tool calls that need specificationId use this value. No session store, no
|
|
70
|
+
All tool calls that need specificationId use this value. No session store, no polling verb.
|
|
49
71
|
|
|
50
|
-
##
|
|
72
|
+
## The lifecycle — three verbs, one loop
|
|
51
73
|
|
|
52
|
-
The lifecycle has
|
|
74
|
+
The work lifecycle has exactly three verbs. Use them in order, per ticket:
|
|
53
75
|
|
|
54
|
-
1. **start_work_session** —
|
|
55
|
-
|
|
56
|
-
|
|
76
|
+
1. **start_work_session (SWS)** — begin (or resume) work on a \`ready\` ticket.
|
|
77
|
+
Flips \`ready → active\`, creates the WorkSession, and RETURNS the full orientation:
|
|
78
|
+
spec/epic/ticket context, the implementation steps, acceptance criteria, planned
|
|
79
|
+
files, test specification, blueprints, and the assay action briefing. You do NOT
|
|
80
|
+
need a separate context read — SWS delivers it.
|
|
81
|
+
2. **action_work_session (AWS)** — record progress with the **assay action vocab**
|
|
82
|
+
(below). Every call re-runs the assay and returns fresh guidance + scores.
|
|
83
|
+
3. **complete_work_session (CWS)** — run the completion gates and finalize
|
|
84
|
+
(\`active → done\`); the count cascade unblocks dependents.
|
|
57
85
|
|
|
58
|
-
These are the ONLY ways to interact with the ticket lifecycle.
|
|
86
|
+
These are the ONLY ways to interact with the ticket lifecycle. Never update tickets directly.
|
|
59
87
|
|
|
60
|
-
|
|
88
|
+
## The git-clean precondition (before EVERY start_work_session)
|
|
61
89
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
90
|
+
SWS enforces a **clean worktree**. The MCP-local layer runs \`git status\` for you and
|
|
91
|
+
feeds the result into SWS as the git-clean precondition. If the worktree has uncommitted
|
|
92
|
+
changes, SWS is **denied** (\`git_dirty\`) and no session starts.
|
|
93
|
+
|
|
94
|
+
So, before every \`start_work_session\`:
|
|
95
|
+
- **Commit or stash prior work** so the worktree is clean.
|
|
96
|
+
- One ticket's changes are committed before you start the next ticket's session.
|
|
97
|
+
|
|
98
|
+
(If you are not inside a git worktree, SWS still runs — the precondition treats a
|
|
99
|
+
non-git caller as clean.)
|
|
100
|
+
|
|
101
|
+
## Step 1: Pick a ticket (autonomous)
|
|
66
102
|
|
|
67
|
-
|
|
103
|
+
Pick the next actionable ticket yourself — no need to ask anyone:
|
|
68
104
|
\`\`\`
|
|
69
105
|
get_next_actionable_tickets({ specificationId, limit: 3 })
|
|
70
106
|
\`\`\`
|
|
71
|
-
|
|
107
|
+
Take the top \`ready\` ticket. If the user named a specific ticket, use that id instead.
|
|
108
|
+
Keep going through ready tickets until none remain.
|
|
72
109
|
|
|
73
|
-
|
|
110
|
+
## Step 2: Start the session
|
|
74
111
|
|
|
112
|
+
Ensure the worktree is clean (see the git-clean precondition), then:
|
|
75
113
|
\`\`\`
|
|
76
114
|
start_work_session({ ticketId })
|
|
77
|
-
// ready → active
|
|
78
|
-
|
|
79
|
-
get_implementation_context({ ticketId, depth: "full" })
|
|
80
|
-
get_patterns({ ticketId })
|
|
115
|
+
// ready → active; returns the full orientation + workSessionId (the sessionId).
|
|
81
116
|
\`\`\`
|
|
117
|
+
Read the orientation in full. It IS your brief:
|
|
118
|
+
- **Implementation steps** — your checklist, in order.
|
|
119
|
+
- **Acceptance criteria** — what you must prove holds.
|
|
120
|
+
- **Planned files** — create/modify/delete/reference; stay in scope.
|
|
121
|
+
- **Test specification** — the test types, quality gates, and commands to run.
|
|
122
|
+
- **Blueprints & reference snippets** — the exact patterns/types this ticket must follow.
|
|
123
|
+
- **Pending discoveries / file-conflict warnings** — what other sessions have flagged.
|
|
82
124
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
- **Files to create/modify** — your scope, don't drift
|
|
87
|
-
- **Dependencies** — all must be \`done\`, verify if unsure
|
|
88
|
-
- **Patterns** — code conventions from spec → epic → ticket inheritance
|
|
89
|
-
- **Test requirements** — check tags (\`needs:unit-test\`, \`needs:e2e\`, etc.) and test-related ACs
|
|
90
|
-
|
|
91
|
-
### Step 3: Implement + Track
|
|
125
|
+
If SWS comes back \`outcome: "denied"\`, read the guidance and act on it: \`git_dirty\` →
|
|
126
|
+
commit and retry; \`unfinished_dependencies\` → a dependency is not \`done\`, pick a
|
|
127
|
+
different ready ticket; an aborted implementation → stop, this spec is off-limits.
|
|
92
128
|
|
|
93
|
-
|
|
129
|
+
## Step 3: Implement + record — the assay-driven order
|
|
94
130
|
|
|
95
|
-
|
|
96
|
-
2. Write code following the project's patterns (not generic best practices)
|
|
97
|
-
3. Report progress immediately after completing:
|
|
131
|
+
Work the four tracked dimensions **in this order** (the assay's order):
|
|
98
132
|
|
|
99
|
-
|
|
100
|
-
action_work_session({
|
|
101
|
-
ticketId,
|
|
102
|
-
steps: [{ index: 0, completed: true, notes: "Created user service" }],
|
|
103
|
-
filesCreated: ["src/services/user.ts"],
|
|
104
|
-
filesModified: ["src/index.ts"]
|
|
105
|
-
})
|
|
106
|
-
\`\`\`
|
|
133
|
+
**Implementation steps → Tests → Files → Acceptance criteria**
|
|
107
134
|
|
|
108
|
-
**
|
|
109
|
-
|
|
110
|
-
- Track files as you go — don't batch at the end
|
|
111
|
-
- If a step is unclear, check the implementation context again before guessing
|
|
135
|
+
Record every dimension via \`action_work_session\`, passing the **assay action** as the
|
|
136
|
+
\`action\` object (the discriminated payload). Always include the \`workSessionId\` from SWS.
|
|
112
137
|
|
|
113
|
-
###
|
|
114
|
-
|
|
115
|
-
If the ticket has test-related acceptance criteria or test tags:
|
|
116
|
-
|
|
117
|
-
1. Write the tests specified (unit, integration, e2e — as defined in the AC)
|
|
118
|
-
2. Create seed data / fixtures if specified
|
|
119
|
-
3. Run the tests
|
|
120
|
-
4. Report results:
|
|
138
|
+
### 3a. Implementation steps (IS)
|
|
121
139
|
|
|
140
|
+
Implement each step following the ticket's patterns (not generic best practices). After a
|
|
141
|
+
step is actually done, mark it:
|
|
122
142
|
\`\`\`
|
|
123
143
|
action_work_session({
|
|
124
144
|
ticketId,
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
}
|
|
131
|
-
filesCreated: ["src/services/__tests__/user.test.ts"]
|
|
145
|
+
action: {
|
|
146
|
+
action: "mark_implementation_step_completion",
|
|
147
|
+
workSessionId,
|
|
148
|
+
implementationStepId: "<step id>", // or allStepsDone: true to mark them all
|
|
149
|
+
notes: "Created the user service"
|
|
150
|
+
}
|
|
132
151
|
})
|
|
133
152
|
\`\`\`
|
|
153
|
+
Mark a step done ONLY after implementing it. Do not batch at the end.
|
|
134
154
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
### Step 5: Validate Acceptance Criteria
|
|
138
|
-
|
|
139
|
-
For EACH acceptance criterion:
|
|
140
|
-
- Verify it's actually met (run test, check behavior, review output)
|
|
141
|
-
- Mark as validated with evidence:
|
|
155
|
+
### 3b. Tests
|
|
142
156
|
|
|
157
|
+
Run the tests the test specification calls for, then record each run per \`testType\`:
|
|
143
158
|
\`\`\`
|
|
144
159
|
action_work_session({
|
|
145
160
|
ticketId,
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
161
|
+
action: {
|
|
162
|
+
action: "record_test_result",
|
|
163
|
+
workSessionId,
|
|
164
|
+
result: {
|
|
165
|
+
testType: "unit", passed: 5, failed: 0, total: 5, skipped: 0,
|
|
166
|
+
allPassed: true, command: "pnpm test user.test.ts"
|
|
167
|
+
}
|
|
168
|
+
}
|
|
150
169
|
})
|
|
151
170
|
\`\`\`
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
### Step 6: Complete
|
|
156
|
-
|
|
157
|
-
Only when ALL steps are done AND ALL ACs are validated:
|
|
158
|
-
|
|
171
|
+
If a test is **skipped** or a failure is **accepted**, justify it — an unjustified skip
|
|
172
|
+
or failure lowers coherence and blocks completion:
|
|
159
173
|
\`\`\`
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
filesModified: [...],
|
|
165
|
-
testResults: { passed: 8, failed: 0 }
|
|
166
|
-
})
|
|
167
|
-
// active → done, finalizes WorkSession, unblocks dependents
|
|
174
|
+
action_work_session({ ticketId, action: {
|
|
175
|
+
action: "add_skip_justification", workSessionId, testType: "e2e",
|
|
176
|
+
justification: "E2e harness not provisioned in CI; covered by integration tests."
|
|
177
|
+
}})
|
|
168
178
|
\`\`\`
|
|
179
|
+
Use \`add_failure_justification\` for an accepted failure. Fix code before you justify —
|
|
180
|
+
justify only what genuinely cannot pass. After a human rejects a justification, replace it
|
|
181
|
+
with \`amend_skip_justification\` / \`amend_failure_justification\`.
|
|
169
182
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
## Handling Discoveries
|
|
183
|
+
### 3c. Files
|
|
173
184
|
|
|
174
|
-
|
|
185
|
+
Report the real outcome of each touched file. In a git worktree the MCP-local layer
|
|
186
|
+
injects the created/modified/deleted set for you from \`git status\`; you still report any
|
|
187
|
+
\`referenced\` file git cannot see, and any file the plan did not list:
|
|
188
|
+
\`\`\`
|
|
189
|
+
action_work_session({ ticketId, action: {
|
|
190
|
+
action: "record_file_change", workSessionId, ticketId,
|
|
191
|
+
expectedPath: "src/services/user.ts", expectedAction: "create",
|
|
192
|
+
actualAction: "created", status: "matched"
|
|
193
|
+
}})
|
|
194
|
+
\`\`\`
|
|
195
|
+
Any **extra or divergent** file (not in the planned set) needs a justification, or it
|
|
196
|
+
costs coherence:
|
|
197
|
+
\`\`\`
|
|
198
|
+
action_work_session({ ticketId, action: {
|
|
199
|
+
action: "add_file_change_justification", workSessionId,
|
|
200
|
+
expectedPath: "src/util/hash.ts", expectedAction: "create",
|
|
201
|
+
justification: "Extracted the hashing helper the AC requires; shared by the service."
|
|
202
|
+
}})
|
|
203
|
+
\`\`\`
|
|
204
|
+
Use \`amend_file_change_justification\` to replace one after a rejection.
|
|
175
205
|
|
|
176
|
-
|
|
177
|
-
1. **Observation** — What you concretely found (facts, evidence, code locations)
|
|
178
|
-
2. **Evaluation** — Why it matters, impact assessment, and possible approaches or recommendations
|
|
206
|
+
### 3d. Acceptance criteria (AC)
|
|
179
207
|
|
|
180
|
-
|
|
208
|
+
Only after the code, tests, and files are recorded, verify each AC actually holds (run the
|
|
209
|
+
test, check the behavior, review the output), then mark it:
|
|
181
210
|
\`\`\`
|
|
182
|
-
action_work_session({
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
}
|
|
189
|
-
})
|
|
190
|
-
|
|
191
|
-
// Then block the ticket:
|
|
192
|
-
action_work_session({
|
|
193
|
-
ticketId,
|
|
194
|
-
blockReason: "Depends on BACK-012 — API endpoint not available"
|
|
195
|
-
})
|
|
196
|
-
// active → pending
|
|
211
|
+
action_work_session({ ticketId, action: {
|
|
212
|
+
action: "mark_acceptance_check",
|
|
213
|
+
workSessionId,
|
|
214
|
+
acceptanceCriterionId: "<criterion id>", // or allACValidated: true
|
|
215
|
+
notes: "Verified: returns 201 with the user object"
|
|
216
|
+
}})
|
|
197
217
|
\`\`\`
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
218
|
+
Do NOT mark an AC checked without verification. "I think it works" is not verification.
|
|
219
|
+
|
|
220
|
+
## Reading the assay — guidance, progress, coherence
|
|
221
|
+
|
|
222
|
+
Every \`action_work_session\` and \`complete_work_session\` response is a work envelope. Read it:
|
|
223
|
+
- **guidance** — agent-directed prose. Read it verbatim and do what it says. Never parse it.
|
|
224
|
+
- **nextStepRefs** — the phase(s) to work next. Follow them.
|
|
225
|
+
- **workPhase** — the current stage (\`implementation-steps → tests → files →
|
|
226
|
+
acceptance-criteria → terminal\`).
|
|
227
|
+
- **progress** — aggregate completion of this ticket.
|
|
228
|
+
- **coherence** — how well your work matched the plan without needing justification
|
|
229
|
+
(unjustified divergent files + unjustified test skips/failures drag it down). If
|
|
230
|
+
coherence drops, either fix the divergence or justify it before completing.
|
|
231
|
+
- **outcome** — \`success\` or \`denied\`. A denial rides the same envelope; read the
|
|
232
|
+
guidance and act, don't treat it as an error.
|
|
233
|
+
|
|
234
|
+
## Step 4: Complete
|
|
235
|
+
|
|
236
|
+
Call CWS only when: every step is done, every AC is checked, tests are recorded,
|
|
237
|
+
divergences are justified, AND **your work is committed** (CWS requires git evidence —
|
|
238
|
+
without a commit it holds you with "commit your work first"):
|
|
201
239
|
\`\`\`
|
|
202
|
-
|
|
240
|
+
complete_work_session({
|
|
203
241
|
ticketId,
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
}
|
|
242
|
+
summary: "Implemented user registration: service, endpoint, validation, tests",
|
|
243
|
+
filesCreated: [...], filesModified: [...],
|
|
244
|
+
validation: { tests: { passed: 8, failed: 0 } }
|
|
208
245
|
})
|
|
246
|
+
// active → done; finalizes the WorkSession; the cascade unblocks dependents.
|
|
247
|
+
// When every spec ticket is done, the spec → done and the ImplementationSession finalizes.
|
|
209
248
|
\`\`\`
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
249
|
+
The completion gates WILL reject you if:
|
|
250
|
+
- **A gate fails** (\`gate_not_passed\`) — a dimension is incomplete or below threshold.
|
|
251
|
+
Your retry count bumps; read the per-gate guidance, fix it, and call CWS again. After
|
|
252
|
+
the max retries the surface locks and you must record a blocking discovery (below).
|
|
253
|
+
- **No commit** — commit your work, then retry.
|
|
254
|
+
- **Unresolved points** (\`unresolved_points\`) — you have justifications or discoveries
|
|
255
|
+
awaiting a human decision. The session pauses; you do NOT resolve these yourself (see
|
|
256
|
+
below). Move on.
|
|
257
|
+
Don't try to shortcut the gate.
|
|
258
|
+
|
|
259
|
+
## Recording blockers & discoveries — you RECORD, you do NOT resolve
|
|
260
|
+
|
|
261
|
+
When you find work outside this ticket, or hit something that stops you, **record a
|
|
262
|
+
discovery**. This is the ONLY block primitive — there is no \`set_ticket_blocked\`,
|
|
263
|
+
\`clear_ticket_block\`, or coarse session-reset verb.
|
|
264
|
+
|
|
265
|
+
A discovery is created via the AWS action vocab. Write a rich \`description\` with two parts:
|
|
266
|
+
1. **Observation** — what you concretely found (facts, evidence, code locations).
|
|
267
|
+
2. **Evaluation** — why it matters, impact, and candidate ways forward.
|
|
268
|
+
|
|
269
|
+
Set \`type\` to the kind of follow-up work it should become (\`ticket\` or \`epic\`), attach
|
|
270
|
+
up to **3 proposedOptions** (candidate ways forward), and set \`blocking\`:
|
|
271
|
+
|
|
272
|
+
### Blocking discovery (it stops this ticket)
|
|
213
273
|
\`\`\`
|
|
214
|
-
action_work_session({
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
}
|
|
274
|
+
action_work_session({ ticketId, action: {
|
|
275
|
+
action: "create_discovery", workSessionId,
|
|
276
|
+
type: "ticket", blocking: true,
|
|
277
|
+
description: "Observation: /api/users (BACK-012) returns 404 — the route handler isn't implemented. Evaluation: this blocks account creation entirely; we depend on it. Options below.",
|
|
278
|
+
proposedOptions: [
|
|
279
|
+
{ id: "wait", summary: "Wait for BACK-012 to land" },
|
|
280
|
+
{ id: "stub", summary: "Stub the endpoint locally for dev" },
|
|
281
|
+
{ id: "reorder", summary: "Implement BACK-012 first" }
|
|
282
|
+
]
|
|
283
|
+
}})
|
|
284
|
+
// blocking:true IS the block: the ticket → blocked, the WorkSession pauses. No separate call.
|
|
221
285
|
\`\`\`
|
|
222
|
-
|
|
286
|
+
Then **move to the next ready ticket** — do NOT wait. Do NOT try to unblock it yourself.
|
|
223
287
|
|
|
224
|
-
###
|
|
288
|
+
### Non-blocking discovery (you can keep going)
|
|
289
|
+
Tech debt, an improvement, or a scope note that does not stop you — record it with
|
|
290
|
+
\`blocking: false\` (it still pauses for sign-off), then continue the ticket if you can.
|
|
225
291
|
\`\`\`
|
|
226
|
-
action_work_session({
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
})
|
|
292
|
+
action_work_session({ ticketId, action: {
|
|
293
|
+
action: "create_discovery", workSessionId,
|
|
294
|
+
type: "ticket", blocking: false,
|
|
295
|
+
description: "Observation: listUsers (src/api/users.ts:45) uses OFFSET/LIMIT — ~800ms at page 100. Evaluation: cursor pagination stays ~50ms; breaking change for consumers.",
|
|
296
|
+
proposedOptions: [{ id: "cursor", summary: "Add cursor-based pagination" }]
|
|
297
|
+
}})
|
|
233
298
|
\`\`\`
|
|
234
|
-
If it blocks: set blockReason. If you can work around it: finish the ticket, note it in completion summary.
|
|
235
299
|
|
|
236
|
-
###
|
|
237
|
-
- **
|
|
238
|
-
|
|
239
|
-
-
|
|
300
|
+
### Who resolves discoveries (not you)
|
|
301
|
+
- The **human** resolves a discovery via \`resolve_discovery\` **in the SpecForge web app**
|
|
302
|
+
— that is what unblocks a blocking discovery (\`blocked → pending\`; the readiness
|
|
303
|
+
cascade re-derives it \`→ ready\`). \`resolve_discovery\` is NOT a tool you can call.
|
|
304
|
+
- The **sfag-work-resolver** chat agent triages recorded discoveries with the human and
|
|
305
|
+
converts the worthwhile ones into tickets/epics.
|
|
306
|
+
- Your only discovery-side follow-ups are audit acks: \`update_discovery\` (correct a
|
|
307
|
+
field) and \`set_discovery_resolved\` (record that you handled it). Neither unblocks a ticket.
|
|
308
|
+
|
|
309
|
+
### Resuming after a resolution
|
|
310
|
+
When a blocked ticket is back to \`ready\`, call \`start_work_session\` on it again. SWS
|
|
311
|
+
**re-attaches** the paused session (\`paused → active\`) and delivers the human's resolution
|
|
312
|
+
as a one-shot in the orientation — apply it (e.g. rework a rejected justification via the
|
|
313
|
+
matching \`amend_*\` action), then continue. Re-work is always a fresh SWS on a \`ready\`
|
|
314
|
+
ticket — never a reset.
|
|
315
|
+
|
|
316
|
+
### Rules for discoveries
|
|
317
|
+
- **The blocking discovery IS the block.** Never look for a separate block verb.
|
|
318
|
+
- **Don't fix tech debt or improvements mid-ticket.** Record them, stay in scope.
|
|
319
|
+
- **Be specific.** "Code is messy" is not a discovery. "UserService mixes auth and profile
|
|
320
|
+
concerns across 3 methods (src/services/user.ts:1-400)" is.
|
|
240
321
|
|
|
241
322
|
## What You Are NOT
|
|
242
323
|
|
|
243
|
-
- You are NOT a code tutor. Don't explain what a function does unless
|
|
244
|
-
- You are NOT an architect. The spec and patterns are
|
|
245
|
-
- You are NOT a reviewer
|
|
324
|
+
- You are NOT a code tutor. Don't explain what a function does unless asked.
|
|
325
|
+
- You are NOT an architect. The spec and patterns are decided. Follow them.
|
|
326
|
+
- You are NOT a reviewer or a resolver. You RECORD discoveries; the human + the
|
|
327
|
+
work-resolver agent decide their fate. Implement, record, complete, move on.
|
|
246
328
|
- You are NOT creative. The ticket tells you what to build. Build exactly that.
|
|
247
329
|
|
|
248
330
|
## Quality Gate (self-check before complete_work_session)
|
|
249
331
|
|
|
250
|
-
- [ ]
|
|
251
|
-
- [ ] All
|
|
252
|
-
- [ ]
|
|
253
|
-
- [ ]
|
|
254
|
-
- [ ]
|
|
255
|
-
- [ ]
|
|
332
|
+
- [ ] Worktree was clean before start_work_session (no \`git_dirty\` denial)
|
|
333
|
+
- [ ] All implementation steps marked done via mark_implementation_step_completion
|
|
334
|
+
- [ ] Tests run and recorded via record_test_result; every skip/failure justified
|
|
335
|
+
- [ ] Every touched/divergent file recorded via record_file_change; divergences justified
|
|
336
|
+
- [ ] All acceptance criteria checked via mark_acceptance_check, with evidence
|
|
337
|
+
- [ ] Worked the dimensions in order: Implementation steps → Tests → Files → Acceptance criteria
|
|
338
|
+
- [ ] Read the assay guidance/coherence each call and acted on it
|
|
339
|
+
- [ ] Work committed (CWS needs git evidence)
|
|
340
|
+
- [ ] Every blocker/discovery RECORDED (create_discovery) — none left unreported, none resolved by you
|
|
256
341
|
- [ ] No scope creep — you built what the ticket asked, nothing more
|
|
257
|
-
- [ ] All discoveries reported (blockers, tech debt, improvements found during implementation)
|
|
258
342
|
`,
|
|
259
343
|
};
|