@specforge/cli 0.1.0
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/README.md +781 -0
- package/bin/specforge +21 -0
- package/dist/channel.d.ts +27 -0
- package/dist/channel.d.ts.map +1 -0
- package/dist/channel.js +22 -0
- package/dist/channel.js.map +1 -0
- package/dist/cli/commands/configure.d.ts +16 -0
- package/dist/cli/commands/configure.d.ts.map +1 -0
- package/dist/cli/commands/configure.js +186 -0
- package/dist/cli/commands/configure.js.map +1 -0
- package/dist/cli/commands/configure.types.d.ts +110 -0
- package/dist/cli/commands/configure.types.d.ts.map +1 -0
- package/dist/cli/commands/configure.types.js +82 -0
- package/dist/cli/commands/configure.types.js.map +1 -0
- package/dist/cli/commands/debug/call.d.ts +14 -0
- package/dist/cli/commands/debug/call.d.ts.map +1 -0
- package/dist/cli/commands/debug/call.js +96 -0
- package/dist/cli/commands/debug/call.js.map +1 -0
- package/dist/cli/commands/debug/index.d.ts +12 -0
- package/dist/cli/commands/debug/index.d.ts.map +1 -0
- package/dist/cli/commands/debug/index.js +14 -0
- package/dist/cli/commands/debug/index.js.map +1 -0
- package/dist/cli/commands/debug/register.d.ts +11 -0
- package/dist/cli/commands/debug/register.d.ts.map +1 -0
- package/dist/cli/commands/debug/register.js +78 -0
- package/dist/cli/commands/debug/register.js.map +1 -0
- package/dist/cli/commands/debug/test.d.ts +13 -0
- package/dist/cli/commands/debug/test.d.ts.map +1 -0
- package/dist/cli/commands/debug/test.js +91 -0
- package/dist/cli/commands/debug/test.js.map +1 -0
- package/dist/cli/commands/debug/tools.d.ts +13 -0
- package/dist/cli/commands/debug/tools.d.ts.map +1 -0
- package/dist/cli/commands/debug/tools.js +86 -0
- package/dist/cli/commands/debug/tools.js.map +1 -0
- package/dist/cli/commands/debug/types.d.ts +119 -0
- package/dist/cli/commands/debug/types.d.ts.map +1 -0
- package/dist/cli/commands/debug/types.js +36 -0
- package/dist/cli/commands/debug/types.js.map +1 -0
- package/dist/cli/commands/debug/whoami.d.ts +13 -0
- package/dist/cli/commands/debug/whoami.d.ts.map +1 -0
- package/dist/cli/commands/debug/whoami.js +131 -0
- package/dist/cli/commands/debug/whoami.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +16 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +413 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/doctor.types.d.ts +180 -0
- package/dist/cli/commands/doctor.types.d.ts.map +1 -0
- package/dist/cli/commands/doctor.types.js +140 -0
- package/dist/cli/commands/doctor.types.js.map +1 -0
- package/dist/cli/commands/feedback.d.ts +27 -0
- package/dist/cli/commands/feedback.d.ts.map +1 -0
- package/dist/cli/commands/feedback.js +262 -0
- package/dist/cli/commands/feedback.js.map +1 -0
- package/dist/cli/commands/feedback.types.d.ts +116 -0
- package/dist/cli/commands/feedback.types.d.ts.map +1 -0
- package/dist/cli/commands/feedback.types.js +65 -0
- package/dist/cli/commands/feedback.types.js.map +1 -0
- package/dist/cli/commands/index.d.ts +15 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +21 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/init.d.ts +17 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +773 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/init.types.d.ts +193 -0
- package/dist/cli/commands/init.types.d.ts.map +1 -0
- package/dist/cli/commands/init.types.js +29 -0
- package/dist/cli/commands/init.types.js.map +1 -0
- package/dist/cli/commands/invitations.d.ts +31 -0
- package/dist/cli/commands/invitations.d.ts.map +1 -0
- package/dist/cli/commands/invitations.js +250 -0
- package/dist/cli/commands/invitations.js.map +1 -0
- package/dist/cli/commands/login.d.ts +40 -0
- package/dist/cli/commands/login.d.ts.map +1 -0
- package/dist/cli/commands/login.js +139 -0
- package/dist/cli/commands/login.js.map +1 -0
- package/dist/cli/commands/members.d.ts +55 -0
- package/dist/cli/commands/members.d.ts.map +1 -0
- package/dist/cli/commands/members.js +296 -0
- package/dist/cli/commands/members.js.map +1 -0
- package/dist/cli/commands/scaffold/agent-types.d.ts +54 -0
- package/dist/cli/commands/scaffold/agent-types.d.ts.map +1 -0
- package/dist/cli/commands/scaffold/agent-types.js +22 -0
- package/dist/cli/commands/scaffold/agent-types.js.map +1 -0
- package/dist/cli/commands/scaffold/display.d.ts +56 -0
- package/dist/cli/commands/scaffold/display.d.ts.map +1 -0
- package/dist/cli/commands/scaffold/display.js +217 -0
- package/dist/cli/commands/scaffold/display.js.map +1 -0
- package/dist/cli/commands/scaffold/files.d.ts +99 -0
- package/dist/cli/commands/scaffold/files.d.ts.map +1 -0
- package/dist/cli/commands/scaffold/files.js +122 -0
- package/dist/cli/commands/scaffold/files.js.map +1 -0
- package/dist/cli/commands/scaffold/index.d.ts +13 -0
- package/dist/cli/commands/scaffold/index.d.ts.map +1 -0
- package/dist/cli/commands/scaffold/index.js +12 -0
- package/dist/cli/commands/scaffold/index.js.map +1 -0
- package/dist/cli/commands/scaffold/register.d.ts +11 -0
- package/dist/cli/commands/scaffold/register.d.ts.map +1 -0
- package/dist/cli/commands/scaffold/register.js +11 -0
- package/dist/cli/commands/scaffold/register.js.map +1 -0
- package/dist/cli/commands/scaffold/scaffold.d.ts +11 -0
- package/dist/cli/commands/scaffold/scaffold.d.ts.map +1 -0
- package/dist/cli/commands/scaffold/scaffold.js +728 -0
- package/dist/cli/commands/scaffold/scaffold.js.map +1 -0
- package/dist/cli/commands/scaffold/targets.d.ts +60 -0
- package/dist/cli/commands/scaffold/targets.d.ts.map +1 -0
- package/dist/cli/commands/scaffold/targets.js +251 -0
- package/dist/cli/commands/scaffold/targets.js.map +1 -0
- package/dist/cli/commands/scaffold/types.d.ts +170 -0
- package/dist/cli/commands/scaffold/types.d.ts.map +1 -0
- package/dist/cli/commands/scaffold/types.js +12 -0
- package/dist/cli/commands/scaffold/types.js.map +1 -0
- package/dist/cli/commands/scaffold/utils.d.ts +89 -0
- package/dist/cli/commands/scaffold/utils.d.ts.map +1 -0
- package/dist/cli/commands/scaffold/utils.js +401 -0
- package/dist/cli/commands/scaffold/utils.js.map +1 -0
- package/dist/cli/commands/status.d.ts +19 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +124 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/status.types.d.ts +37 -0
- package/dist/cli/commands/status.types.d.ts.map +1 -0
- package/dist/cli/commands/status.types.js +7 -0
- package/dist/cli/commands/status.types.js.map +1 -0
- package/dist/cli/commands/switch.d.ts +18 -0
- package/dist/cli/commands/switch.d.ts.map +1 -0
- package/dist/cli/commands/switch.js +134 -0
- package/dist/cli/commands/switch.js.map +1 -0
- package/dist/cli/commands/switch.types.d.ts +123 -0
- package/dist/cli/commands/switch.types.d.ts.map +1 -0
- package/dist/cli/commands/switch.types.js +46 -0
- package/dist/cli/commands/switch.types.js.map +1 -0
- package/dist/cli/config/agent-teams.types.d.ts +120 -0
- package/dist/cli/config/agent-teams.types.d.ts.map +1 -0
- package/dist/cli/config/agent-teams.types.js +23 -0
- package/dist/cli/config/agent-teams.types.js.map +1 -0
- package/dist/cli/config/index.d.ts +13 -0
- package/dist/cli/config/index.d.ts.map +1 -0
- package/dist/cli/config/index.js +7 -0
- package/dist/cli/config/index.js.map +1 -0
- package/dist/cli/config/loader.d.ts +114 -0
- package/dist/cli/config/loader.d.ts.map +1 -0
- package/dist/cli/config/loader.js +198 -0
- package/dist/cli/config/loader.js.map +1 -0
- package/dist/cli/config/paths.d.ts +107 -0
- package/dist/cli/config/paths.d.ts.map +1 -0
- package/dist/cli/config/paths.js +79 -0
- package/dist/cli/config/paths.js.map +1 -0
- package/dist/cli/config/planning-sessions-registry.d.ts +52 -0
- package/dist/cli/config/planning-sessions-registry.d.ts.map +1 -0
- package/dist/cli/config/planning-sessions-registry.js +46 -0
- package/dist/cli/config/planning-sessions-registry.js.map +1 -0
- package/dist/cli/config/types.d.ts +186 -0
- package/dist/cli/config/types.d.ts.map +1 -0
- package/dist/cli/config/types.js +27 -0
- package/dist/cli/config/types.js.map +1 -0
- package/dist/cli/config/validation.d.ts +62 -0
- package/dist/cli/config/validation.d.ts.map +1 -0
- package/dist/cli/config/validation.js +133 -0
- package/dist/cli/config/validation.js.map +1 -0
- package/dist/cli/config/writer.d.ts +153 -0
- package/dist/cli/config/writer.d.ts.map +1 -0
- package/dist/cli/config/writer.js +168 -0
- package/dist/cli/config/writer.js.map +1 -0
- package/dist/cli/index.d.ts +30 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +142 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/middleware/auth-guard.d.ts +107 -0
- package/dist/cli/middleware/auth-guard.d.ts.map +1 -0
- package/dist/cli/middleware/auth-guard.js +97 -0
- package/dist/cli/middleware/auth-guard.js.map +1 -0
- package/dist/cli/middleware/error-handler.d.ts +133 -0
- package/dist/cli/middleware/error-handler.d.ts.map +1 -0
- package/dist/cli/middleware/error-handler.js +139 -0
- package/dist/cli/middleware/error-handler.js.map +1 -0
- package/dist/cli/middleware/index.d.ts +6 -0
- package/dist/cli/middleware/index.d.ts.map +1 -0
- package/dist/cli/middleware/index.js +3 -0
- package/dist/cli/middleware/index.js.map +1 -0
- package/dist/cli/templates/agents/content/core/sfag-orchestrator.d.ts +9 -0
- package/dist/cli/templates/agents/content/core/sfag-orchestrator.d.ts.map +1 -0
- package/dist/cli/templates/agents/content/core/sfag-orchestrator.js +160 -0
- package/dist/cli/templates/agents/content/core/sfag-orchestrator.js.map +1 -0
- package/dist/cli/templates/agents/content/core/sfag-spec-creator.d.ts +9 -0
- package/dist/cli/templates/agents/content/core/sfag-spec-creator.d.ts.map +1 -0
- package/dist/cli/templates/agents/content/core/sfag-spec-creator.js +343 -0
- package/dist/cli/templates/agents/content/core/sfag-spec-creator.js.map +1 -0
- package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.d.ts +9 -0
- package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.d.ts.map +1 -0
- package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.js +254 -0
- package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.js.map +1 -0
- package/dist/cli/templates/agents/content/research/sfag-package-researcher.d.ts +8 -0
- package/dist/cli/templates/agents/content/research/sfag-package-researcher.d.ts.map +1 -0
- package/dist/cli/templates/agents/content/research/sfag-package-researcher.js +128 -0
- package/dist/cli/templates/agents/content/research/sfag-package-researcher.js.map +1 -0
- package/dist/cli/templates/agents/index.d.ts +23 -0
- package/dist/cli/templates/agents/index.d.ts.map +1 -0
- package/dist/cli/templates/agents/index.js +29 -0
- package/dist/cli/templates/agents/index.js.map +1 -0
- package/dist/cli/templates/commands.d.ts +17 -0
- package/dist/cli/templates/commands.d.ts.map +1 -0
- package/dist/cli/templates/commands.js +78 -0
- package/dist/cli/templates/commands.js.map +1 -0
- package/dist/cli/templates/content/sf-blockers.d.ts +7 -0
- package/dist/cli/templates/content/sf-blockers.d.ts.map +1 -0
- package/dist/cli/templates/content/sf-blockers.js +69 -0
- package/dist/cli/templates/content/sf-blockers.js.map +1 -0
- package/dist/cli/templates/content/sf-commit.d.ts +7 -0
- package/dist/cli/templates/content/sf-commit.d.ts.map +1 -0
- package/dist/cli/templates/content/sf-commit.js +79 -0
- package/dist/cli/templates/content/sf-commit.js.map +1 -0
- package/dist/cli/templates/content/sf-context.d.ts +7 -0
- package/dist/cli/templates/content/sf-context.d.ts.map +1 -0
- package/dist/cli/templates/content/sf-context.js +63 -0
- package/dist/cli/templates/content/sf-context.js.map +1 -0
- package/dist/cli/templates/content/sf-help.d.ts +7 -0
- package/dist/cli/templates/content/sf-help.d.ts.map +1 -0
- package/dist/cli/templates/content/sf-help.js +42 -0
- package/dist/cli/templates/content/sf-help.js.map +1 -0
- package/dist/cli/templates/content/sf-init.d.ts +7 -0
- package/dist/cli/templates/content/sf-init.d.ts.map +1 -0
- package/dist/cli/templates/content/sf-init.js +62 -0
- package/dist/cli/templates/content/sf-init.js.map +1 -0
- package/dist/cli/templates/content/sf-reset.d.ts +7 -0
- package/dist/cli/templates/content/sf-reset.d.ts.map +1 -0
- package/dist/cli/templates/content/sf-reset.js +67 -0
- package/dist/cli/templates/content/sf-reset.js.map +1 -0
- package/dist/cli/templates/content/sf-search.d.ts +7 -0
- package/dist/cli/templates/content/sf-search.d.ts.map +1 -0
- package/dist/cli/templates/content/sf-search.js +63 -0
- package/dist/cli/templates/content/sf-search.js.map +1 -0
- package/dist/cli/templates/content/sf-status.d.ts +7 -0
- package/dist/cli/templates/content/sf-status.d.ts.map +1 -0
- package/dist/cli/templates/content/sf-status.js +62 -0
- package/dist/cli/templates/content/sf-status.js.map +1 -0
- package/dist/cli/templates/index.d.ts +8 -0
- package/dist/cli/templates/index.d.ts.map +1 -0
- package/dist/cli/templates/index.js +17 -0
- package/dist/cli/templates/index.js.map +1 -0
- package/dist/cli/ui/banner.d.ts +38 -0
- package/dist/cli/ui/banner.d.ts.map +1 -0
- package/dist/cli/ui/banner.js +89 -0
- package/dist/cli/ui/banner.js.map +1 -0
- package/dist/cli/ui/colors.d.ts +76 -0
- package/dist/cli/ui/colors.d.ts.map +1 -0
- package/dist/cli/ui/colors.js +67 -0
- package/dist/cli/ui/colors.js.map +1 -0
- package/dist/cli/ui/index.d.ts +7 -0
- package/dist/cli/ui/index.d.ts.map +1 -0
- package/dist/cli/ui/index.js +4 -0
- package/dist/cli/ui/index.js.map +1 -0
- package/dist/cli/ui/output.d.ts +117 -0
- package/dist/cli/ui/output.d.ts.map +1 -0
- package/dist/cli/ui/output.js +83 -0
- package/dist/cli/ui/output.js.map +1 -0
- package/dist/cli/ui/spinner.d.ts +120 -0
- package/dist/cli/ui/spinner.d.ts.map +1 -0
- package/dist/cli/ui/spinner.js +158 -0
- package/dist/cli/ui/spinner.js.map +1 -0
- package/dist/cli/ui/time.d.ts +54 -0
- package/dist/cli/ui/time.d.ts.map +1 -0
- package/dist/cli/ui/time.js +119 -0
- package/dist/cli/ui/time.js.map +1 -0
- package/dist/client/api-client.d.ts +123 -0
- package/dist/client/api-client.d.ts.map +1 -0
- package/dist/client/api-client.js +105 -0
- package/dist/client/api-client.js.map +1 -0
- package/dist/client/cli-client.d.ts +26 -0
- package/dist/client/cli-client.d.ts.map +1 -0
- package/dist/client/cli-client.js +20 -0
- package/dist/client/cli-client.js.map +1 -0
- package/dist/config/index.d.ts +78 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +79 -0
- package/dist/config/index.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +73 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/format.d.ts +126 -0
- package/dist/lib/format.d.ts.map +1 -0
- package/dist/lib/format.js +71 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/index.d.ts +11 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +45 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/monorepo-detector.d.ts +31 -0
- package/dist/lib/monorepo-detector.d.ts.map +1 -0
- package/dist/lib/monorepo-detector.js +188 -0
- package/dist/lib/monorepo-detector.js.map +1 -0
- package/dist/lib/prompt-generator.d.ts +65 -0
- package/dist/lib/prompt-generator.d.ts.map +1 -0
- package/dist/lib/prompt-generator.js +162 -0
- package/dist/lib/prompt-generator.js.map +1 -0
- package/dist/lib/strategy-analyzer.d.ts +59 -0
- package/dist/lib/strategy-analyzer.d.ts.map +1 -0
- package/dist/lib/strategy-analyzer.js +91 -0
- package/dist/lib/strategy-analyzer.js.map +1 -0
- package/dist/lib/workflow-definitions.d.ts +41 -0
- package/dist/lib/workflow-definitions.d.ts.map +1 -0
- package/dist/lib/workflow-definitions.js +497 -0
- package/dist/lib/workflow-definitions.js.map +1 -0
- package/dist/patterns/index.d.ts +9 -0
- package/dist/patterns/index.d.ts.map +1 -0
- package/dist/patterns/index.js +21 -0
- package/dist/patterns/index.js.map +1 -0
- package/dist/patterns/inheritance.d.ts +193 -0
- package/dist/patterns/inheritance.d.ts.map +1 -0
- package/dist/patterns/inheritance.js +125 -0
- package/dist/patterns/inheritance.js.map +1 -0
- package/dist/server.d.ts +44 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +91 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/core/context-helper.d.ts +50 -0
- package/dist/tools/core/context-helper.d.ts.map +1 -0
- package/dist/tools/core/context-helper.js +49 -0
- package/dist/tools/core/context-helper.js.map +1 -0
- package/dist/tools/core/index.d.ts +2 -0
- package/dist/tools/core/index.d.ts.map +1 -0
- package/dist/tools/core/index.js +2 -0
- package/dist/tools/core/index.js.map +1 -0
- package/dist/tools/index.d.ts +58 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +1499 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/transport/__tests__/resolve-endpoint.test.d.ts +6 -0
- package/dist/transport/__tests__/resolve-endpoint.test.d.ts.map +1 -0
- package/dist/transport/index.d.ts +6 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +5 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/interface.d.ts +25 -0
- package/dist/transport/interface.d.ts.map +1 -0
- package/dist/transport/interface.js +1 -0
- package/dist/transport/interface.js.map +1 -0
- package/dist/transport/remote.d.ts +38 -0
- package/dist/transport/remote.d.ts.map +1 -0
- package/dist/transport/remote.js +107 -0
- package/dist/transport/remote.js.map +1 -0
- package/dist/transport/resolve-endpoint.d.ts +58 -0
- package/dist/transport/resolve-endpoint.d.ts.map +1 -0
- package/dist/transport/resolve-endpoint.js +146 -0
- package/dist/transport/resolve-endpoint.js.map +1 -0
- package/dist/types/index.d.ts +212 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +16 -0
- package/dist/types/index.js.map +1 -0
- package/dist/validation/index.d.ts +86 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +392 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/ticket-validation.d.ts +162 -0
- package/dist/validation/ticket-validation.d.ts.map +1 -0
- package/dist/validation/ticket-validation.js +188 -0
- package/dist/validation/ticket-validation.js.map +1 -0
- package/package.json +69 -0
- package/src/cli/templates/agents/content/core/sfag-orchestrator.ts +165 -0
- package/src/cli/templates/agents/content/core/sfag-spec-creator.ts +348 -0
- package/src/cli/templates/agents/content/core/sfag-ticket-implementer.ts +259 -0
- package/src/cli/templates/agents/content/research/sfag-package-researcher.ts +132 -0
- package/src/cli/templates/agents/index.ts +47 -0
- package/src/cli/templates/commands.ts +90 -0
- package/src/cli/templates/content/sf-blockers.ts +71 -0
- package/src/cli/templates/content/sf-commit.ts +81 -0
- package/src/cli/templates/content/sf-context.ts +65 -0
- package/src/cli/templates/content/sf-help.ts +44 -0
- package/src/cli/templates/content/sf-init.ts +64 -0
- package/src/cli/templates/content/sf-reset.ts +69 -0
- package/src/cli/templates/content/sf-search.ts +65 -0
- package/src/cli/templates/content/sf-status.ts +64 -0
- package/src/cli/templates/index.ts +16 -0
- package/src/cli/templates/skills/specforge-conventions.md +114 -0
- package/src/cli/templates/skills/specforge-orchestrator.md +409 -0
- package/src/cli/templates/skills/specforge-validator.md +128 -0
- package/src/cli/templates/skills/specforge-worker.md +412 -0
|
@@ -0,0 +1,497 @@
|
|
|
1
|
+
const CREATION_WORKFLOW = {
|
|
2
|
+
name: "creation",
|
|
3
|
+
description: "Create specifications, epics, and tickets with rich context",
|
|
4
|
+
philosophy: [
|
|
5
|
+
"One entity at a time - never bulk create",
|
|
6
|
+
"More context = better AI implementation",
|
|
7
|
+
"When in doubt, ask the user",
|
|
8
|
+
"Invest in planning for first-run success"
|
|
9
|
+
],
|
|
10
|
+
steps: [
|
|
11
|
+
{
|
|
12
|
+
step: 1,
|
|
13
|
+
name: "understand_requirements",
|
|
14
|
+
description: "Gather comprehensive requirements from user",
|
|
15
|
+
tools: [],
|
|
16
|
+
tips: [
|
|
17
|
+
"Ask about the problem being solved",
|
|
18
|
+
"Understand the target users",
|
|
19
|
+
"Clarify scope boundaries",
|
|
20
|
+
"Identify constraints and risks"
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
step: 2,
|
|
25
|
+
name: "create_specification",
|
|
26
|
+
description: "Create specification with full context",
|
|
27
|
+
tools: ["specification.create"],
|
|
28
|
+
tips: [
|
|
29
|
+
"Include background and goals",
|
|
30
|
+
"Define guardrails (what NOT to do)",
|
|
31
|
+
"Set codeStandards for consistency",
|
|
32
|
+
"Add architecture overview"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
step: 3,
|
|
37
|
+
name: "plan_epics",
|
|
38
|
+
description: "Identify logical phases/groupings, discuss with user",
|
|
39
|
+
tools: [],
|
|
40
|
+
tips: [
|
|
41
|
+
"Break work into cohesive units",
|
|
42
|
+
"Consider dependencies between phases",
|
|
43
|
+
"Discuss timeline and priority with user",
|
|
44
|
+
"Keep epic count manageable (3-7 typical)"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
step: 4,
|
|
49
|
+
name: "create_epic",
|
|
50
|
+
description: "Create ONE epic with full context",
|
|
51
|
+
tools: ["epic.create"],
|
|
52
|
+
tips: [
|
|
53
|
+
"Define clear objective",
|
|
54
|
+
"Set scope boundaries",
|
|
55
|
+
"Include sharedPatterns for consistency",
|
|
56
|
+
"Add any epic-specific guardrails"
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
step: 5,
|
|
61
|
+
name: "plan_tickets",
|
|
62
|
+
description: "Break epic into tickets, discuss dependencies with user",
|
|
63
|
+
tools: [],
|
|
64
|
+
tips: [
|
|
65
|
+
"Keep tickets small and focused",
|
|
66
|
+
"Identify clear acceptance criteria",
|
|
67
|
+
"Map out dependencies before creating",
|
|
68
|
+
"Discuss complexity with user"
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
step: 6,
|
|
73
|
+
name: "create_ticket",
|
|
74
|
+
description: "Create ONE ticket with full details",
|
|
75
|
+
tools: ["ticket.create"],
|
|
76
|
+
tips: [
|
|
77
|
+
"Write detailed acceptanceCriteria",
|
|
78
|
+
"Include implementation hints",
|
|
79
|
+
"Add technicalDetails for complex logic",
|
|
80
|
+
"Specify files to modify if known"
|
|
81
|
+
]
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
step: 7,
|
|
85
|
+
name: "add_dependencies",
|
|
86
|
+
description: "Link ticket to its dependencies",
|
|
87
|
+
tools: ["dependency.add"],
|
|
88
|
+
tips: [
|
|
89
|
+
"Only add true blocking dependencies",
|
|
90
|
+
"Avoid circular dependency chains",
|
|
91
|
+
"Keep dependency graph shallow when possible"
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
step: 8,
|
|
96
|
+
name: "repeat",
|
|
97
|
+
description: "Continue tickets for current epic, then next epic",
|
|
98
|
+
tools: [],
|
|
99
|
+
tips: [
|
|
100
|
+
"Complete all tickets for an epic before moving on",
|
|
101
|
+
"Review epic completion before starting next",
|
|
102
|
+
"Adjust estimates as you learn more"
|
|
103
|
+
]
|
|
104
|
+
}
|
|
105
|
+
],
|
|
106
|
+
antiPatterns: [
|
|
107
|
+
"NEVER use bulk creation - always one at a time",
|
|
108
|
+
"NEVER skip asking user when details are unclear",
|
|
109
|
+
"NEVER create tickets without acceptance criteria",
|
|
110
|
+
"NEVER proceed without understanding dependencies"
|
|
111
|
+
]
|
|
112
|
+
};
|
|
113
|
+
const IMPLEMENTATION_WORKFLOW = {
|
|
114
|
+
name: "implementation",
|
|
115
|
+
description: "Implement tickets with session management",
|
|
116
|
+
philosophy: [
|
|
117
|
+
"Always get full context before starting",
|
|
118
|
+
"Start session before making changes",
|
|
119
|
+
"Report progress during implementation",
|
|
120
|
+
"Validate before completing"
|
|
121
|
+
],
|
|
122
|
+
steps: [
|
|
123
|
+
{
|
|
124
|
+
step: 1,
|
|
125
|
+
name: "get_context",
|
|
126
|
+
description: "Understand current working context",
|
|
127
|
+
tools: ["context.working"],
|
|
128
|
+
tips: [
|
|
129
|
+
"Check for active sessions",
|
|
130
|
+
"Note the current specification/epic focus",
|
|
131
|
+
"Understand what has already been done"
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
step: 2,
|
|
136
|
+
name: "check_session",
|
|
137
|
+
description: "Check if spec has an open session",
|
|
138
|
+
tools: ["context.working"],
|
|
139
|
+
tips: [
|
|
140
|
+
"If session exists, continue with that session ID",
|
|
141
|
+
"If no session, will start new one after selecting ticket",
|
|
142
|
+
"Only ONE session per spec at a time"
|
|
143
|
+
]
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
step: 3,
|
|
147
|
+
name: "find_work",
|
|
148
|
+
description: "Find tickets ready to work on",
|
|
149
|
+
tools: ["workflow.next_actionable"],
|
|
150
|
+
tips: [
|
|
151
|
+
"Focus on unblocked tickets",
|
|
152
|
+
"Consider priority and complexity",
|
|
153
|
+
"Check if any tickets are already in progress"
|
|
154
|
+
]
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
step: 4,
|
|
158
|
+
name: "review_ticket",
|
|
159
|
+
description: "Get full implementation context",
|
|
160
|
+
tools: ["context.implementation"],
|
|
161
|
+
tips: [
|
|
162
|
+
"Use depth=full for rich context",
|
|
163
|
+
"Read all related patterns",
|
|
164
|
+
"Understand acceptance criteria"
|
|
165
|
+
]
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
step: 5,
|
|
169
|
+
name: "clarify",
|
|
170
|
+
description: "Ask user about unclear requirements",
|
|
171
|
+
tools: [],
|
|
172
|
+
tips: [
|
|
173
|
+
"ASK THE USER before proceeding if unclear",
|
|
174
|
+
"Confirm test environment preference",
|
|
175
|
+
"Verify any assumptions"
|
|
176
|
+
]
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
step: 6,
|
|
180
|
+
name: "start_session",
|
|
181
|
+
description: "Start or continue implementation session",
|
|
182
|
+
tools: ["session.start"],
|
|
183
|
+
tips: [
|
|
184
|
+
"Session locks the specification",
|
|
185
|
+
"Prevents concurrent work conflicts",
|
|
186
|
+
"Tracks your progress and changes"
|
|
187
|
+
]
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
step: 7,
|
|
191
|
+
name: "implement",
|
|
192
|
+
description: "Do the work, report progress",
|
|
193
|
+
tools: ["session.progress"],
|
|
194
|
+
tips: [
|
|
195
|
+
"Follow the patterns from context",
|
|
196
|
+
"Report meaningful progress updates",
|
|
197
|
+
"Commit logically grouped changes"
|
|
198
|
+
]
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
step: 8,
|
|
202
|
+
name: "validate",
|
|
203
|
+
description: "Run tests, lint, typecheck",
|
|
204
|
+
tools: [],
|
|
205
|
+
tips: [
|
|
206
|
+
"Run validation as specified in ticket",
|
|
207
|
+
"Fix any failing tests before completing",
|
|
208
|
+
"Ensure no regressions"
|
|
209
|
+
]
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
step: 9,
|
|
213
|
+
name: "complete_ticket",
|
|
214
|
+
description: "Complete the ticket with summary",
|
|
215
|
+
tools: ["session.complete"],
|
|
216
|
+
tips: [
|
|
217
|
+
"Include summary of what was done",
|
|
218
|
+
"Report validation results",
|
|
219
|
+
"Note any follow-up items"
|
|
220
|
+
]
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
step: 10,
|
|
224
|
+
name: "repeat_tickets",
|
|
225
|
+
description: "Continue with next ticket in epic",
|
|
226
|
+
tools: ["workflow.next_actionable"],
|
|
227
|
+
tips: [
|
|
228
|
+
"Check what tickets are now unblocked",
|
|
229
|
+
"Continue until epic is complete",
|
|
230
|
+
"Then proceed to epic completion"
|
|
231
|
+
]
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
step: 11,
|
|
235
|
+
name: "epic_review",
|
|
236
|
+
description: "Review all changes made in epic",
|
|
237
|
+
tools: ["epic.get"],
|
|
238
|
+
tips: [
|
|
239
|
+
"Check all tickets are done",
|
|
240
|
+
"Review integration between tickets",
|
|
241
|
+
"Run full test suite for epic scope",
|
|
242
|
+
"Check for regressions"
|
|
243
|
+
]
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
step: 12,
|
|
247
|
+
name: "epic_commit",
|
|
248
|
+
description: "Create commit for the epic",
|
|
249
|
+
tools: [],
|
|
250
|
+
tips: [
|
|
251
|
+
"Stage all changes from epic tickets",
|
|
252
|
+
"Write descriptive commit message referencing epic",
|
|
253
|
+
"Include ticket numbers in commit"
|
|
254
|
+
]
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
step: 13,
|
|
258
|
+
name: "next_epic",
|
|
259
|
+
description: "Move to next epic",
|
|
260
|
+
tools: ["epic.list", "workflow.next_actionable"],
|
|
261
|
+
tips: [
|
|
262
|
+
"Find the next epic to work on",
|
|
263
|
+
"Repeat from step 3 (find_work)"
|
|
264
|
+
]
|
|
265
|
+
}
|
|
266
|
+
],
|
|
267
|
+
antiPatterns: [
|
|
268
|
+
"NEVER implement without reading full ticket context",
|
|
269
|
+
"NEVER skip session.start - it tracks your work",
|
|
270
|
+
"NEVER complete without running validation",
|
|
271
|
+
"NEVER assume - ask the user if unclear"
|
|
272
|
+
]
|
|
273
|
+
};
|
|
274
|
+
const REVIEW_WORKFLOW = {
|
|
275
|
+
name: "review",
|
|
276
|
+
description: "Review tickets for completeness and consistency before implementation",
|
|
277
|
+
philosophy: [
|
|
278
|
+
"Catch issues before implementation, not during",
|
|
279
|
+
"Consistency across all layers (DB, API, types)",
|
|
280
|
+
"Always ask about test environment preference",
|
|
281
|
+
"Document findings in ticket notes"
|
|
282
|
+
],
|
|
283
|
+
checklist: [
|
|
284
|
+
{ name: "missing_points", description: "Acceptance criteria complete? Edge cases?" },
|
|
285
|
+
{ name: "blind_spots", description: "Security implications? What could go wrong?" },
|
|
286
|
+
{ name: "auth_patterns", description: "Token handling? Permission checks?" },
|
|
287
|
+
{ name: "db_permissions", description: "Row-level security? Audit requirements?" },
|
|
288
|
+
{ name: "field_naming", description: "DB (snake_case) <-> API (camelCase) <-> Types match?" },
|
|
289
|
+
{ name: "documentation", description: "API docs? README? Architecture docs need update?" },
|
|
290
|
+
{ name: "test_environment", description: "ASK USER: Sandbox or local mocks?" }
|
|
291
|
+
],
|
|
292
|
+
steps: [
|
|
293
|
+
{
|
|
294
|
+
step: 1,
|
|
295
|
+
name: "select_ticket",
|
|
296
|
+
description: "Choose ticket to review",
|
|
297
|
+
tools: ["ticket.get", "workflow.next_actionable"],
|
|
298
|
+
tips: [
|
|
299
|
+
"Review tickets before they are implemented",
|
|
300
|
+
"Can review all pending tickets in an epic"
|
|
301
|
+
]
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
step: 2,
|
|
305
|
+
name: "load_context",
|
|
306
|
+
description: "Get full implementation context with patterns",
|
|
307
|
+
tools: ["context.implementation"],
|
|
308
|
+
tips: [
|
|
309
|
+
"Use depth=full for comprehensive review",
|
|
310
|
+
"Understand the broader context"
|
|
311
|
+
]
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
step: 3,
|
|
315
|
+
name: "run_checklist",
|
|
316
|
+
description: "Go through each review point systematically",
|
|
317
|
+
tools: [],
|
|
318
|
+
tips: [
|
|
319
|
+
"Check each item in the review checklist",
|
|
320
|
+
"Be thorough - issues found now save time later"
|
|
321
|
+
]
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
step: 4,
|
|
325
|
+
name: "identify_gaps",
|
|
326
|
+
description: "List missing items, inconsistencies, concerns",
|
|
327
|
+
tools: [],
|
|
328
|
+
tips: [
|
|
329
|
+
"Document all findings",
|
|
330
|
+
"Prioritize by impact",
|
|
331
|
+
"Note any blocking issues"
|
|
332
|
+
]
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
step: 5,
|
|
336
|
+
name: "ask_user",
|
|
337
|
+
description: "Clarify test environment preference",
|
|
338
|
+
tools: [],
|
|
339
|
+
tips: [
|
|
340
|
+
"ALWAYS ask about test environment",
|
|
341
|
+
"Sandbox (real services) vs local mocks",
|
|
342
|
+
"Document the decision"
|
|
343
|
+
]
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
step: 6,
|
|
347
|
+
name: "update_ticket",
|
|
348
|
+
description: "Add findings to ticket notes or update acceptance criteria",
|
|
349
|
+
tools: ["ticket.update"],
|
|
350
|
+
tips: [
|
|
351
|
+
"Add findings to notes field",
|
|
352
|
+
"Update acceptance criteria if needed",
|
|
353
|
+
"Mark items that need user input"
|
|
354
|
+
]
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
step: 7,
|
|
358
|
+
name: "repeat",
|
|
359
|
+
description: "Review next ticket",
|
|
360
|
+
tools: [],
|
|
361
|
+
tips: [
|
|
362
|
+
"Continue until all relevant tickets reviewed",
|
|
363
|
+
"Consider reviewing related tickets together"
|
|
364
|
+
]
|
|
365
|
+
}
|
|
366
|
+
],
|
|
367
|
+
antiPatterns: [
|
|
368
|
+
"NEVER skip the review checklist",
|
|
369
|
+
"NEVER assume test environment - always ask user",
|
|
370
|
+
"NEVER ignore field naming mismatches",
|
|
371
|
+
"NEVER proceed if auth patterns are unclear"
|
|
372
|
+
]
|
|
373
|
+
};
|
|
374
|
+
const FINALIZE_WORKFLOW = {
|
|
375
|
+
name: "finalize",
|
|
376
|
+
description: "Verify implementation, mark spec done, and create PR",
|
|
377
|
+
philosophy: [
|
|
378
|
+
"All epics must be complete before finalizing",
|
|
379
|
+
"Run full validation suite before PR",
|
|
380
|
+
"PR description should tell the full story",
|
|
381
|
+
"End session cleanly after PR creation"
|
|
382
|
+
],
|
|
383
|
+
prerequisites: [
|
|
384
|
+
"All epics in specification are done",
|
|
385
|
+
"All tickets are completed",
|
|
386
|
+
"All epic commits have been made"
|
|
387
|
+
],
|
|
388
|
+
steps: [
|
|
389
|
+
{
|
|
390
|
+
step: 1,
|
|
391
|
+
name: "verify_completion",
|
|
392
|
+
description: "Check all epics and tickets are done",
|
|
393
|
+
tools: ["specification.get", "epic.list"],
|
|
394
|
+
tips: [
|
|
395
|
+
"Verify all epics are marked done",
|
|
396
|
+
"Check all tickets are completed",
|
|
397
|
+
"Look for any pending dependencies"
|
|
398
|
+
]
|
|
399
|
+
},
|
|
400
|
+
{
|
|
401
|
+
step: 2,
|
|
402
|
+
name: "full_validation",
|
|
403
|
+
description: "Run complete test suite",
|
|
404
|
+
tools: [],
|
|
405
|
+
tips: [
|
|
406
|
+
"Run: npm test (or equivalent)",
|
|
407
|
+
"Run: npm run lint",
|
|
408
|
+
"Run: npm run build",
|
|
409
|
+
"All must pass before proceeding"
|
|
410
|
+
]
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
step: 3,
|
|
414
|
+
name: "integration_review",
|
|
415
|
+
description: "Review cross-epic integration",
|
|
416
|
+
tools: [],
|
|
417
|
+
tips: [
|
|
418
|
+
"Check APIs work together",
|
|
419
|
+
"Verify data flows correctly",
|
|
420
|
+
"Look for regressions from epic interactions"
|
|
421
|
+
]
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
step: 4,
|
|
425
|
+
name: "documentation_check",
|
|
426
|
+
description: "Verify all docs are updated",
|
|
427
|
+
tools: [],
|
|
428
|
+
tips: [
|
|
429
|
+
"API documentation updated",
|
|
430
|
+
"README changes if needed",
|
|
431
|
+
"Architecture docs if changed"
|
|
432
|
+
]
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
step: 5,
|
|
436
|
+
name: "final_commit",
|
|
437
|
+
description: "Commit any cleanup changes",
|
|
438
|
+
tools: [],
|
|
439
|
+
tips: [
|
|
440
|
+
"Stage final changes",
|
|
441
|
+
"Commit with spec reference",
|
|
442
|
+
"Only if cleanup needed"
|
|
443
|
+
]
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
step: 6,
|
|
447
|
+
name: "mark_spec_done",
|
|
448
|
+
description: "Update specification status",
|
|
449
|
+
tools: ["specification.update"],
|
|
450
|
+
tips: [
|
|
451
|
+
"Set status to done",
|
|
452
|
+
"This marks the specification complete"
|
|
453
|
+
]
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
step: 7,
|
|
457
|
+
name: "create_pr",
|
|
458
|
+
description: "Create pull request with full context",
|
|
459
|
+
tools: ["link.pull_request"],
|
|
460
|
+
tips: [
|
|
461
|
+
"Title references specification",
|
|
462
|
+
"Description includes all epics and key tickets",
|
|
463
|
+
"Link to specification for context",
|
|
464
|
+
"Request reviewers if configured"
|
|
465
|
+
]
|
|
466
|
+
}
|
|
467
|
+
],
|
|
468
|
+
antiPatterns: [
|
|
469
|
+
"NEVER create PR with failing tests",
|
|
470
|
+
"NEVER skip documentation check",
|
|
471
|
+
"NEVER forget to link PR to specification"
|
|
472
|
+
]
|
|
473
|
+
};
|
|
474
|
+
function getWorkflowDefinition(workflowType) {
|
|
475
|
+
switch (workflowType) {
|
|
476
|
+
case "creation":
|
|
477
|
+
return CREATION_WORKFLOW;
|
|
478
|
+
case "implementation":
|
|
479
|
+
return IMPLEMENTATION_WORKFLOW;
|
|
480
|
+
case "review":
|
|
481
|
+
return REVIEW_WORKFLOW;
|
|
482
|
+
case "finalize":
|
|
483
|
+
return FINALIZE_WORKFLOW;
|
|
484
|
+
default:
|
|
485
|
+
return null;
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
const WORKFLOW_TYPES = ["creation", "implementation", "review", "finalize"];
|
|
489
|
+
export {
|
|
490
|
+
CREATION_WORKFLOW,
|
|
491
|
+
FINALIZE_WORKFLOW,
|
|
492
|
+
IMPLEMENTATION_WORKFLOW,
|
|
493
|
+
REVIEW_WORKFLOW,
|
|
494
|
+
WORKFLOW_TYPES,
|
|
495
|
+
getWorkflowDefinition
|
|
496
|
+
};
|
|
497
|
+
//# sourceMappingURL=workflow-definitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/workflow-definitions.ts"],"sourcesContent":["// mcp/src/lib/workflow-definitions.ts\n/**\n * Workflow Definitions\n *\n * Contains the workflow definitions as data structures for guiding AI agents\n * through SpecForge workflows.\n */\n\nexport interface WorkflowStep {\n step: number;\n name: string;\n description: string;\n tools: string[];\n tips: string[];\n}\n\nexport interface WorkflowDefinition {\n name: string;\n description: string;\n philosophy: string[];\n steps: WorkflowStep[];\n antiPatterns: string[];\n}\n\nexport interface ReviewChecklistItem {\n name: string;\n description: string;\n}\n\nexport interface ReviewWorkflowDefinition extends WorkflowDefinition {\n checklist: ReviewChecklistItem[];\n}\n\nexport interface FinalizeWorkflowDefinition extends WorkflowDefinition {\n prerequisites: string[];\n}\n\nexport const CREATION_WORKFLOW: WorkflowDefinition = {\n name: 'creation',\n description: 'Create specifications, epics, and tickets with rich context',\n philosophy: [\n 'One entity at a time - never bulk create',\n 'More context = better AI implementation',\n 'When in doubt, ask the user',\n 'Invest in planning for first-run success',\n ],\n steps: [\n {\n step: 1,\n name: 'understand_requirements',\n description: 'Gather comprehensive requirements from user',\n tools: [],\n tips: [\n 'Ask about the problem being solved',\n 'Understand the target users',\n 'Clarify scope boundaries',\n 'Identify constraints and risks',\n ],\n },\n {\n step: 2,\n name: 'create_specification',\n description: 'Create specification with full context',\n tools: ['specification.create'],\n tips: [\n 'Include background and goals',\n 'Define guardrails (what NOT to do)',\n 'Set codeStandards for consistency',\n 'Add architecture overview',\n ],\n },\n {\n step: 3,\n name: 'plan_epics',\n description: 'Identify logical phases/groupings, discuss with user',\n tools: [],\n tips: [\n 'Break work into cohesive units',\n 'Consider dependencies between phases',\n 'Discuss timeline and priority with user',\n 'Keep epic count manageable (3-7 typical)',\n ],\n },\n {\n step: 4,\n name: 'create_epic',\n description: 'Create ONE epic with full context',\n tools: ['epic.create'],\n tips: [\n 'Define clear objective',\n 'Set scope boundaries',\n 'Include sharedPatterns for consistency',\n 'Add any epic-specific guardrails',\n ],\n },\n {\n step: 5,\n name: 'plan_tickets',\n description: 'Break epic into tickets, discuss dependencies with user',\n tools: [],\n tips: [\n 'Keep tickets small and focused',\n 'Identify clear acceptance criteria',\n 'Map out dependencies before creating',\n 'Discuss complexity with user',\n ],\n },\n {\n step: 6,\n name: 'create_ticket',\n description: 'Create ONE ticket with full details',\n tools: ['ticket.create'],\n tips: [\n 'Write detailed acceptanceCriteria',\n 'Include implementation hints',\n 'Add technicalDetails for complex logic',\n 'Specify files to modify if known',\n ],\n },\n {\n step: 7,\n name: 'add_dependencies',\n description: 'Link ticket to its dependencies',\n tools: ['dependency.add'],\n tips: [\n 'Only add true blocking dependencies',\n 'Avoid circular dependency chains',\n 'Keep dependency graph shallow when possible',\n ],\n },\n {\n step: 8,\n name: 'repeat',\n description: 'Continue tickets for current epic, then next epic',\n tools: [],\n tips: [\n 'Complete all tickets for an epic before moving on',\n 'Review epic completion before starting next',\n 'Adjust estimates as you learn more',\n ],\n },\n ],\n antiPatterns: [\n 'NEVER use bulk creation - always one at a time',\n 'NEVER skip asking user when details are unclear',\n 'NEVER create tickets without acceptance criteria',\n 'NEVER proceed without understanding dependencies',\n ],\n};\n\nexport const IMPLEMENTATION_WORKFLOW: WorkflowDefinition = {\n name: 'implementation',\n description: 'Implement tickets with session management',\n philosophy: [\n 'Always get full context before starting',\n 'Start session before making changes',\n 'Report progress during implementation',\n 'Validate before completing',\n ],\n steps: [\n {\n step: 1,\n name: 'get_context',\n description: 'Understand current working context',\n tools: ['context.working'],\n tips: [\n 'Check for active sessions',\n 'Note the current specification/epic focus',\n 'Understand what has already been done',\n ],\n },\n {\n step: 2,\n name: 'check_session',\n description: 'Check if spec has an open session',\n tools: ['context.working'],\n tips: [\n 'If session exists, continue with that session ID',\n 'If no session, will start new one after selecting ticket',\n 'Only ONE session per spec at a time',\n ],\n },\n {\n step: 3,\n name: 'find_work',\n description: 'Find tickets ready to work on',\n tools: ['workflow.next_actionable'],\n tips: [\n 'Focus on unblocked tickets',\n 'Consider priority and complexity',\n 'Check if any tickets are already in progress',\n ],\n },\n {\n step: 4,\n name: 'review_ticket',\n description: 'Get full implementation context',\n tools: ['context.implementation'],\n tips: [\n 'Use depth=full for rich context',\n 'Read all related patterns',\n 'Understand acceptance criteria',\n ],\n },\n {\n step: 5,\n name: 'clarify',\n description: 'Ask user about unclear requirements',\n tools: [],\n tips: [\n 'ASK THE USER before proceeding if unclear',\n 'Confirm test environment preference',\n 'Verify any assumptions',\n ],\n },\n {\n step: 6,\n name: 'start_session',\n description: 'Start or continue implementation session',\n tools: ['session.start'],\n tips: [\n 'Session locks the specification',\n 'Prevents concurrent work conflicts',\n 'Tracks your progress and changes',\n ],\n },\n {\n step: 7,\n name: 'implement',\n description: 'Do the work, report progress',\n tools: ['session.progress'],\n tips: [\n 'Follow the patterns from context',\n 'Report meaningful progress updates',\n 'Commit logically grouped changes',\n ],\n },\n {\n step: 8,\n name: 'validate',\n description: 'Run tests, lint, typecheck',\n tools: [],\n tips: [\n 'Run validation as specified in ticket',\n 'Fix any failing tests before completing',\n 'Ensure no regressions',\n ],\n },\n {\n step: 9,\n name: 'complete_ticket',\n description: 'Complete the ticket with summary',\n tools: ['session.complete'],\n tips: [\n 'Include summary of what was done',\n 'Report validation results',\n 'Note any follow-up items',\n ],\n },\n {\n step: 10,\n name: 'repeat_tickets',\n description: 'Continue with next ticket in epic',\n tools: ['workflow.next_actionable'],\n tips: [\n 'Check what tickets are now unblocked',\n 'Continue until epic is complete',\n 'Then proceed to epic completion',\n ],\n },\n {\n step: 11,\n name: 'epic_review',\n description: 'Review all changes made in epic',\n tools: ['epic.get'],\n tips: [\n 'Check all tickets are done',\n 'Review integration between tickets',\n 'Run full test suite for epic scope',\n 'Check for regressions',\n ],\n },\n {\n step: 12,\n name: 'epic_commit',\n description: 'Create commit for the epic',\n tools: [],\n tips: [\n 'Stage all changes from epic tickets',\n 'Write descriptive commit message referencing epic',\n 'Include ticket numbers in commit',\n ],\n },\n {\n step: 13,\n name: 'next_epic',\n description: 'Move to next epic',\n tools: ['epic.list', 'workflow.next_actionable'],\n tips: [\n 'Find the next epic to work on',\n 'Repeat from step 3 (find_work)',\n ],\n },\n ],\n antiPatterns: [\n 'NEVER implement without reading full ticket context',\n 'NEVER skip session.start - it tracks your work',\n 'NEVER complete without running validation',\n 'NEVER assume - ask the user if unclear',\n ],\n};\n\nexport const REVIEW_WORKFLOW: ReviewWorkflowDefinition = {\n name: 'review',\n description: 'Review tickets for completeness and consistency before implementation',\n philosophy: [\n 'Catch issues before implementation, not during',\n 'Consistency across all layers (DB, API, types)',\n 'Always ask about test environment preference',\n 'Document findings in ticket notes',\n ],\n checklist: [\n { name: 'missing_points', description: 'Acceptance criteria complete? Edge cases?' },\n { name: 'blind_spots', description: 'Security implications? What could go wrong?' },\n { name: 'auth_patterns', description: 'Token handling? Permission checks?' },\n { name: 'db_permissions', description: 'Row-level security? Audit requirements?' },\n { name: 'field_naming', description: 'DB (snake_case) <-> API (camelCase) <-> Types match?' },\n { name: 'documentation', description: 'API docs? README? Architecture docs need update?' },\n { name: 'test_environment', description: 'ASK USER: Sandbox or local mocks?' },\n ],\n steps: [\n {\n step: 1,\n name: 'select_ticket',\n description: 'Choose ticket to review',\n tools: ['ticket.get', 'workflow.next_actionable'],\n tips: [\n 'Review tickets before they are implemented',\n 'Can review all pending tickets in an epic',\n ],\n },\n {\n step: 2,\n name: 'load_context',\n description: 'Get full implementation context with patterns',\n tools: ['context.implementation'],\n tips: [\n 'Use depth=full for comprehensive review',\n 'Understand the broader context',\n ],\n },\n {\n step: 3,\n name: 'run_checklist',\n description: 'Go through each review point systematically',\n tools: [],\n tips: [\n 'Check each item in the review checklist',\n 'Be thorough - issues found now save time later',\n ],\n },\n {\n step: 4,\n name: 'identify_gaps',\n description: 'List missing items, inconsistencies, concerns',\n tools: [],\n tips: [\n 'Document all findings',\n 'Prioritize by impact',\n 'Note any blocking issues',\n ],\n },\n {\n step: 5,\n name: 'ask_user',\n description: 'Clarify test environment preference',\n tools: [],\n tips: [\n 'ALWAYS ask about test environment',\n 'Sandbox (real services) vs local mocks',\n 'Document the decision',\n ],\n },\n {\n step: 6,\n name: 'update_ticket',\n description: 'Add findings to ticket notes or update acceptance criteria',\n tools: ['ticket.update'],\n tips: [\n 'Add findings to notes field',\n 'Update acceptance criteria if needed',\n 'Mark items that need user input',\n ],\n },\n {\n step: 7,\n name: 'repeat',\n description: 'Review next ticket',\n tools: [],\n tips: [\n 'Continue until all relevant tickets reviewed',\n 'Consider reviewing related tickets together',\n ],\n },\n ],\n antiPatterns: [\n 'NEVER skip the review checklist',\n 'NEVER assume test environment - always ask user',\n 'NEVER ignore field naming mismatches',\n 'NEVER proceed if auth patterns are unclear',\n ],\n};\n\nexport const FINALIZE_WORKFLOW: FinalizeWorkflowDefinition = {\n name: 'finalize',\n description: 'Verify implementation, mark spec done, and create PR',\n philosophy: [\n 'All epics must be complete before finalizing',\n 'Run full validation suite before PR',\n 'PR description should tell the full story',\n 'End session cleanly after PR creation',\n ],\n prerequisites: [\n 'All epics in specification are done',\n 'All tickets are completed',\n 'All epic commits have been made',\n ],\n steps: [\n {\n step: 1,\n name: 'verify_completion',\n description: 'Check all epics and tickets are done',\n tools: ['specification.get', 'epic.list'],\n tips: [\n 'Verify all epics are marked done',\n 'Check all tickets are completed',\n 'Look for any pending dependencies',\n ],\n },\n {\n step: 2,\n name: 'full_validation',\n description: 'Run complete test suite',\n tools: [],\n tips: [\n 'Run: npm test (or equivalent)',\n 'Run: npm run lint',\n 'Run: npm run build',\n 'All must pass before proceeding',\n ],\n },\n {\n step: 3,\n name: 'integration_review',\n description: 'Review cross-epic integration',\n tools: [],\n tips: [\n 'Check APIs work together',\n 'Verify data flows correctly',\n 'Look for regressions from epic interactions',\n ],\n },\n {\n step: 4,\n name: 'documentation_check',\n description: 'Verify all docs are updated',\n tools: [],\n tips: [\n 'API documentation updated',\n 'README changes if needed',\n 'Architecture docs if changed',\n ],\n },\n {\n step: 5,\n name: 'final_commit',\n description: 'Commit any cleanup changes',\n tools: [],\n tips: [\n 'Stage final changes',\n 'Commit with spec reference',\n 'Only if cleanup needed',\n ],\n },\n {\n step: 6,\n name: 'mark_spec_done',\n description: 'Update specification status',\n tools: ['specification.update'],\n tips: [\n 'Set status to done',\n 'This marks the specification complete',\n ],\n },\n {\n step: 7,\n name: 'create_pr',\n description: 'Create pull request with full context',\n tools: ['link.pull_request'],\n tips: [\n 'Title references specification',\n 'Description includes all epics and key tickets',\n 'Link to specification for context',\n 'Request reviewers if configured',\n ],\n },\n ],\n antiPatterns: [\n 'NEVER create PR with failing tests',\n 'NEVER skip documentation check',\n 'NEVER forget to link PR to specification',\n ],\n};\n\n/**\n * Get a workflow definition by type\n */\nexport function getWorkflowDefinition(\n workflowType: string\n): WorkflowDefinition | ReviewWorkflowDefinition | FinalizeWorkflowDefinition | null {\n switch (workflowType) {\n case 'creation':\n return CREATION_WORKFLOW;\n case 'implementation':\n return IMPLEMENTATION_WORKFLOW;\n case 'review':\n return REVIEW_WORKFLOW;\n case 'finalize':\n return FINALIZE_WORKFLOW;\n default:\n return null;\n }\n}\n\nexport const WORKFLOW_TYPES = ['creation', 'implementation', 'review', 'finalize'] as const;\nexport type WorkflowType = (typeof WORKFLOW_TYPES)[number];\n"],"mappings":"AAqCO,MAAM,oBAAwC;AAAA,EACnD,MAAM;AAAA,EACN,aAAa;AAAA,EACb,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC;AAAA,MACR,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC,sBAAsB;AAAA,MAC9B,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC;AAAA,MACR,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC,aAAa;AAAA,MACrB,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC;AAAA,MACR,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC,eAAe;AAAA,MACvB,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC,gBAAgB;AAAA,MACxB,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC;AAAA,MACR,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,cAAc;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,MAAM,0BAA8C;AAAA,EACzD,MAAM;AAAA,EACN,aAAa;AAAA,EACb,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC,iBAAiB;AAAA,MACzB,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC,iBAAiB;AAAA,MACzB,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC,0BAA0B;AAAA,MAClC,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC,wBAAwB;AAAA,MAChC,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC;AAAA,MACR,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC,eAAe;AAAA,MACvB,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC,kBAAkB;AAAA,MAC1B,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC;AAAA,MACR,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC,kBAAkB;AAAA,MAC1B,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC,0BAA0B;AAAA,MAClC,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC,UAAU;AAAA,MAClB,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC;AAAA,MACR,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC,aAAa,0BAA0B;AAAA,MAC/C,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,cAAc;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,MAAM,kBAA4C;AAAA,EACvD,MAAM;AAAA,EACN,aAAa;AAAA,EACb,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,WAAW;AAAA,IACT,EAAE,MAAM,kBAAkB,aAAa,4CAA4C;AAAA,IACnF,EAAE,MAAM,eAAe,aAAa,8CAA8C;AAAA,IAClF,EAAE,MAAM,iBAAiB,aAAa,qCAAqC;AAAA,IAC3E,EAAE,MAAM,kBAAkB,aAAa,0CAA0C;AAAA,IACjF,EAAE,MAAM,gBAAgB,aAAa,uDAAuD;AAAA,IAC5F,EAAE,MAAM,iBAAiB,aAAa,mDAAmD;AAAA,IACzF,EAAE,MAAM,oBAAoB,aAAa,oCAAoC;AAAA,EAC/E;AAAA,EACA,OAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC,cAAc,0BAA0B;AAAA,MAChD,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC,wBAAwB;AAAA,MAChC,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC;AAAA,MACR,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC;AAAA,MACR,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC;AAAA,MACR,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC,eAAe;AAAA,MACvB,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC;AAAA,MACR,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,cAAc;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,MAAM,oBAAgD;AAAA,EAC3D,MAAM;AAAA,EACN,aAAa;AAAA,EACb,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,eAAe;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC,qBAAqB,WAAW;AAAA,MACxC,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC;AAAA,MACR,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC;AAAA,MACR,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC;AAAA,MACR,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC;AAAA,MACR,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC,sBAAsB;AAAA,MAC9B,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO,CAAC,mBAAmB;AAAA,MAC3B,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,cAAc;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAKO,SAAS,sBACd,cACmF;AACnF,UAAQ,cAAc;AAAA,IACpB,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAEO,MAAM,iBAAiB,CAAC,YAAY,kBAAkB,UAAU,UAAU;","names":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern Inheritance Module
|
|
3
|
+
*
|
|
4
|
+
* Exports pattern resolution functions for the SpecForge MCP.
|
|
5
|
+
*
|
|
6
|
+
* @see MCI-030-05-pattern-inheritance-resolver
|
|
7
|
+
*/
|
|
8
|
+
export { type ResolvedPatterns, type PatternOverride, type PatternOverrideReport, type PatternResolutionInput, resolvePatterns, resolvePatternsWithCache, getPatternOverrides, flattenCodeStandards, flattenSharedPatterns, invalidatePatternCache, invalidateAllPatternCaches, getPatternCacheSize, } from './inheritance.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/patterns/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAE3B,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EAEnB,oBAAoB,EACpB,qBAAqB,EAErB,sBAAsB,EACtB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {
|
|
2
|
+
resolvePatterns,
|
|
3
|
+
resolvePatternsWithCache,
|
|
4
|
+
getPatternOverrides,
|
|
5
|
+
flattenCodeStandards,
|
|
6
|
+
flattenSharedPatterns,
|
|
7
|
+
invalidatePatternCache,
|
|
8
|
+
invalidateAllPatternCaches,
|
|
9
|
+
getPatternCacheSize
|
|
10
|
+
} from "./inheritance.js";
|
|
11
|
+
export {
|
|
12
|
+
flattenCodeStandards,
|
|
13
|
+
flattenSharedPatterns,
|
|
14
|
+
getPatternCacheSize,
|
|
15
|
+
getPatternOverrides,
|
|
16
|
+
invalidateAllPatternCaches,
|
|
17
|
+
invalidatePatternCache,
|
|
18
|
+
resolvePatterns,
|
|
19
|
+
resolvePatternsWithCache
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/patterns/index.ts"],"sourcesContent":["/**\n * Pattern Inheritance Module\n *\n * Exports pattern resolution functions for the SpecForge MCP.\n *\n * @see MCI-030-05-pattern-inheritance-resolver\n */\n\nexport {\n // Types\n type ResolvedPatterns,\n type PatternOverride,\n type PatternOverrideReport,\n type PatternResolutionInput,\n // Main functions\n resolvePatterns,\n resolvePatternsWithCache,\n getPatternOverrides,\n // Helper functions\n flattenCodeStandards,\n flattenSharedPatterns,\n // Cache management\n invalidatePatternCache,\n invalidateAllPatternCaches,\n getPatternCacheSize,\n} from './inheritance.js';\n"],"mappings":"AAQA;AAAA,EAOE;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
|