@specforge/mcp 2.0.9 → 2.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 +324 -0
- package/bin/specforge-mcp +19 -1
- package/dist/cli/commands/blocked.d.ts +16 -0
- package/dist/cli/commands/blocked.d.ts.map +1 -0
- package/dist/cli/commands/blocked.js +214 -0
- package/dist/cli/commands/blocked.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 +218 -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 +105 -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 +117 -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 +12 -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 +90 -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 +117 -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 +117 -0
- package/dist/cli/commands/debug/tools.js.map +1 -0
- package/dist/cli/commands/debug/types.d.ts +117 -0
- package/dist/cli/commands/debug/types.d.ts.map +1 -0
- package/dist/cli/commands/debug/types.js +43 -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 +161 -0
- package/dist/cli/commands/debug/whoami.js.map +1 -0
- package/dist/cli/commands/docs/content/api.d.ts +7 -0
- package/dist/cli/commands/docs/content/api.d.ts.map +1 -0
- package/dist/cli/commands/docs/content/api.js +64 -0
- package/dist/cli/commands/docs/content/api.js.map +1 -0
- package/dist/cli/commands/docs/content/concepts.d.ts +7 -0
- package/dist/cli/commands/docs/content/concepts.d.ts.map +1 -0
- package/dist/cli/commands/docs/content/concepts.js +68 -0
- package/dist/cli/commands/docs/content/concepts.js.map +1 -0
- package/dist/cli/commands/docs/content/examples.d.ts +7 -0
- package/dist/cli/commands/docs/content/examples.d.ts.map +1 -0
- package/dist/cli/commands/docs/content/examples.js +84 -0
- package/dist/cli/commands/docs/content/examples.js.map +1 -0
- package/dist/cli/commands/docs/content/index.d.ts +10 -0
- package/dist/cli/commands/docs/content/index.d.ts.map +1 -0
- package/dist/cli/commands/docs/content/index.js +10 -0
- package/dist/cli/commands/docs/content/index.js.map +1 -0
- package/dist/cli/commands/docs/content/workflow.d.ts +7 -0
- package/dist/cli/commands/docs/content/workflow.d.ts.map +1 -0
- package/dist/cli/commands/docs/content/workflow.js +44 -0
- package/dist/cli/commands/docs/content/workflow.js.map +1 -0
- package/dist/cli/commands/docs/content.d.ts +23 -0
- package/dist/cli/commands/docs/content.d.ts.map +1 -0
- package/dist/cli/commands/docs/content.js +38 -0
- package/dist/cli/commands/docs/content.js.map +1 -0
- package/dist/cli/commands/docs/display.d.ts +26 -0
- package/dist/cli/commands/docs/display.d.ts.map +1 -0
- package/dist/cli/commands/docs/display.js +53 -0
- package/dist/cli/commands/docs/display.js.map +1 -0
- package/dist/cli/commands/docs/docs.d.ts +19 -0
- package/dist/cli/commands/docs/docs.d.ts.map +1 -0
- package/dist/cli/commands/docs/docs.js +124 -0
- package/dist/cli/commands/docs/docs.js.map +1 -0
- package/dist/cli/commands/docs/index.d.ts +13 -0
- package/dist/cli/commands/docs/index.d.ts.map +1 -0
- package/dist/cli/commands/docs/index.js +13 -0
- package/dist/cli/commands/docs/index.js.map +1 -0
- package/dist/cli/commands/docs/register.d.ts +23 -0
- package/dist/cli/commands/docs/register.d.ts.map +1 -0
- package/dist/cli/commands/docs/register.js +64 -0
- package/dist/cli/commands/docs/register.js.map +1 -0
- package/dist/cli/commands/docs/tool-docs.d.ts +44 -0
- package/dist/cli/commands/docs/tool-docs.d.ts.map +1 -0
- package/dist/cli/commands/docs/tool-docs.js +182 -0
- package/dist/cli/commands/docs/tool-docs.js.map +1 -0
- package/dist/cli/commands/docs/tool-examples.d.ts +14 -0
- package/dist/cli/commands/docs/tool-examples.d.ts.map +1 -0
- package/dist/cli/commands/docs/tool-examples.js +127 -0
- package/dist/cli/commands/docs/tool-examples.js.map +1 -0
- package/dist/cli/commands/docs/types.d.ts +108 -0
- package/dist/cli/commands/docs/types.d.ts.map +1 -0
- package/dist/cli/commands/docs/types.js +33 -0
- package/dist/cli/commands/docs/types.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 +322 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/doctor.types.d.ts +177 -0
- package/dist/cli/commands/doctor.types.d.ts.map +1 -0
- package/dist/cli/commands/doctor.types.js +172 -0
- package/dist/cli/commands/doctor.types.js.map +1 -0
- package/dist/cli/commands/index.d.ts +18 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +18 -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 +326 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/init.types.d.ts +141 -0
- package/dist/cli/commands/init.types.d.ts.map +1 -0
- package/dist/cli/commands/init.types.js +24 -0
- package/dist/cli/commands/init.types.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 +174 -0
- package/dist/cli/commands/login.js.map +1 -0
- package/dist/cli/commands/next.d.ts +16 -0
- package/dist/cli/commands/next.d.ts.map +1 -0
- package/dist/cli/commands/next.js +279 -0
- package/dist/cli/commands/next.js.map +1 -0
- package/dist/cli/commands/next.types.d.ts +191 -0
- package/dist/cli/commands/next.types.d.ts.map +1 -0
- package/dist/cli/commands/next.types.js +129 -0
- package/dist/cli/commands/next.types.js.map +1 -0
- package/dist/cli/commands/projects.d.ts +16 -0
- package/dist/cli/commands/projects.d.ts.map +1 -0
- package/dist/cli/commands/projects.js +149 -0
- package/dist/cli/commands/projects.js.map +1 -0
- package/dist/cli/commands/projects.types.d.ts +81 -0
- package/dist/cli/commands/projects.types.d.ts.map +1 -0
- package/dist/cli/commands/projects.types.js +35 -0
- package/dist/cli/commands/projects.types.js.map +1 -0
- package/dist/cli/commands/review/display.d.ts +33 -0
- package/dist/cli/commands/review/display.d.ts.map +1 -0
- package/dist/cli/commands/review/display.js +159 -0
- package/dist/cli/commands/review/display.js.map +1 -0
- package/dist/cli/commands/review/epic-review.d.ts +13 -0
- package/dist/cli/commands/review/epic-review.d.ts.map +1 -0
- package/dist/cli/commands/review/epic-review.js +69 -0
- package/dist/cli/commands/review/epic-review.js.map +1 -0
- package/dist/cli/commands/review/index.d.ts +13 -0
- package/dist/cli/commands/review/index.d.ts.map +1 -0
- package/dist/cli/commands/review/index.js +17 -0
- package/dist/cli/commands/review/index.js.map +1 -0
- package/dist/cli/commands/review/report.d.ts +31 -0
- package/dist/cli/commands/review/report.d.ts.map +1 -0
- package/dist/cli/commands/review/report.js +146 -0
- package/dist/cli/commands/review/report.js.map +1 -0
- package/dist/cli/commands/review/review.d.ts +17 -0
- package/dist/cli/commands/review/review.d.ts.map +1 -0
- package/dist/cli/commands/review/review.js +129 -0
- package/dist/cli/commands/review/review.js.map +1 -0
- package/dist/cli/commands/review/spec-review.d.ts +13 -0
- package/dist/cli/commands/review/spec-review.d.ts.map +1 -0
- package/dist/cli/commands/review/spec-review.js +65 -0
- package/dist/cli/commands/review/spec-review.js.map +1 -0
- package/dist/cli/commands/review/ticket-review.d.ts +37 -0
- package/dist/cli/commands/review/ticket-review.d.ts.map +1 -0
- package/dist/cli/commands/review/ticket-review.js +194 -0
- package/dist/cli/commands/review/ticket-review.js.map +1 -0
- package/dist/cli/commands/review/types.d.ts +232 -0
- package/dist/cli/commands/review/types.d.ts.map +1 -0
- package/dist/cli/commands/review/types.js +85 -0
- package/dist/cli/commands/review/types.js.map +1 -0
- package/dist/cli/commands/scaffold/display.d.ts +27 -0
- package/dist/cli/commands/scaffold/display.d.ts.map +1 -0
- package/dist/cli/commands/scaffold/display.js +90 -0
- package/dist/cli/commands/scaffold/display.js.map +1 -0
- package/dist/cli/commands/scaffold/index.d.ts +12 -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 +25 -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 +111 -0
- package/dist/cli/commands/scaffold/scaffold.js.map +1 -0
- package/dist/cli/commands/scaffold/targets.d.ts +31 -0
- package/dist/cli/commands/scaffold/targets.d.ts.map +1 -0
- package/dist/cli/commands/scaffold/targets.js +84 -0
- package/dist/cli/commands/scaffold/targets.js.map +1 -0
- package/dist/cli/commands/scaffold/types.d.ts +88 -0
- package/dist/cli/commands/scaffold/types.d.ts.map +1 -0
- package/dist/cli/commands/scaffold/types.js +21 -0
- package/dist/cli/commands/scaffold/types.js.map +1 -0
- package/dist/cli/commands/scaffold/utils.d.ts +31 -0
- package/dist/cli/commands/scaffold/utils.d.ts.map +1 -0
- package/dist/cli/commands/scaffold/utils.js +71 -0
- package/dist/cli/commands/scaffold/utils.js.map +1 -0
- package/dist/cli/commands/session/display.d.ts +40 -0
- package/dist/cli/commands/session/display.d.ts.map +1 -0
- package/dist/cli/commands/session/display.js +114 -0
- package/dist/cli/commands/session/display.js.map +1 -0
- package/dist/cli/commands/session/end.d.ts +12 -0
- package/dist/cli/commands/session/end.d.ts.map +1 -0
- package/dist/cli/commands/session/end.js +165 -0
- package/dist/cli/commands/session/end.js.map +1 -0
- package/dist/cli/commands/session/index.d.ts +13 -0
- package/dist/cli/commands/session/index.d.ts.map +1 -0
- package/dist/cli/commands/session/index.js +13 -0
- package/dist/cli/commands/session/index.js.map +1 -0
- package/dist/cli/commands/session/register.d.ts +12 -0
- package/dist/cli/commands/session/register.d.ts.map +1 -0
- package/dist/cli/commands/session/register.js +87 -0
- package/dist/cli/commands/session/register.js.map +1 -0
- package/dist/cli/commands/session/start.d.ts +12 -0
- package/dist/cli/commands/session/start.d.ts.map +1 -0
- package/dist/cli/commands/session/start.js +189 -0
- package/dist/cli/commands/session/start.js.map +1 -0
- package/dist/cli/commands/session/status.d.ts +12 -0
- package/dist/cli/commands/session/status.d.ts.map +1 -0
- package/dist/cli/commands/session/status.js +93 -0
- package/dist/cli/commands/session/status.js.map +1 -0
- package/dist/cli/commands/session/types.d.ts +179 -0
- package/dist/cli/commands/session/types.d.ts.map +1 -0
- package/dist/cli/commands/session/types.js +8 -0
- package/dist/cli/commands/session/types.js.map +1 -0
- package/dist/cli/commands/session/utils.d.ts +24 -0
- package/dist/cli/commands/session/utils.d.ts.map +1 -0
- package/dist/cli/commands/session/utils.js +72 -0
- package/dist/cli/commands/session/utils.js.map +1 -0
- package/dist/cli/commands/specs.d.ts +16 -0
- package/dist/cli/commands/specs.d.ts.map +1 -0
- package/dist/cli/commands/specs.js +212 -0
- package/dist/cli/commands/specs.js.map +1 -0
- package/dist/cli/commands/specs.types.d.ts +120 -0
- package/dist/cli/commands/specs.types.d.ts.map +1 -0
- package/dist/cli/commands/specs.types.js +75 -0
- package/dist/cli/commands/specs.types.js.map +1 -0
- package/dist/cli/commands/status.d.ts +17 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +271 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/status.types.d.ts +382 -0
- package/dist/cli/commands/status.types.d.ts.map +1 -0
- package/dist/cli/commands/status.types.js +166 -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 +181 -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 +65 -0
- package/dist/cli/commands/switch.types.js.map +1 -0
- package/dist/cli/commands/ticket/command.d.ts +14 -0
- package/dist/cli/commands/ticket/command.d.ts.map +1 -0
- package/dist/cli/commands/ticket/command.js +141 -0
- package/dist/cli/commands/ticket/command.js.map +1 -0
- package/dist/cli/commands/ticket/display.d.ts +56 -0
- package/dist/cli/commands/ticket/display.d.ts.map +1 -0
- package/dist/cli/commands/ticket/display.js +205 -0
- package/dist/cli/commands/ticket/display.js.map +1 -0
- package/dist/cli/commands/ticket/index.d.ts +11 -0
- package/dist/cli/commands/ticket/index.d.ts.map +1 -0
- package/dist/cli/commands/ticket/index.js +11 -0
- package/dist/cli/commands/ticket/index.js.map +1 -0
- package/dist/cli/commands/ticket/register.d.ts +11 -0
- package/dist/cli/commands/ticket/register.d.ts.map +1 -0
- package/dist/cli/commands/ticket/register.js +39 -0
- package/dist/cli/commands/ticket/register.js.map +1 -0
- package/dist/cli/commands/ticket/resolver.d.ts +16 -0
- package/dist/cli/commands/ticket/resolver.d.ts.map +1 -0
- package/dist/cli/commands/ticket/resolver.js +35 -0
- package/dist/cli/commands/ticket/resolver.js.map +1 -0
- package/dist/cli/commands/ticket/types.d.ts +157 -0
- package/dist/cli/commands/ticket/types.d.ts.map +1 -0
- package/dist/cli/commands/ticket/types.js +8 -0
- package/dist/cli/commands/ticket/types.js.map +1 -0
- package/dist/cli/commands/tickets.d.ts +16 -0
- package/dist/cli/commands/tickets.d.ts.map +1 -0
- package/dist/cli/commands/tickets.js +271 -0
- package/dist/cli/commands/tickets.js.map +1 -0
- package/dist/cli/commands/tickets.types.d.ts +202 -0
- package/dist/cli/commands/tickets.types.d.ts.map +1 -0
- package/dist/cli/commands/tickets.types.js +138 -0
- package/dist/cli/commands/tickets.types.js.map +1 -0
- package/dist/cli/config/index.d.ts +11 -0
- package/dist/cli/config/index.d.ts.map +1 -0
- package/dist/cli/config/index.js +11 -0
- package/dist/cli/config/index.js.map +1 -0
- package/dist/cli/config/loader.d.ts +98 -0
- package/dist/cli/config/loader.d.ts.map +1 -0
- package/dist/cli/config/loader.js +237 -0
- package/dist/cli/config/loader.js.map +1 -0
- package/dist/cli/config/paths.d.ts +96 -0
- package/dist/cli/config/paths.d.ts.map +1 -0
- package/dist/cli/config/paths.js +140 -0
- package/dist/cli/config/paths.js.map +1 -0
- package/dist/cli/config/types.d.ts +148 -0
- package/dist/cli/config/types.d.ts.map +1 -0
- package/dist/cli/config/types.js +34 -0
- package/dist/cli/config/types.js.map +1 -0
- package/dist/cli/config/writer.d.ts +171 -0
- package/dist/cli/config/writer.d.ts.map +1 -0
- package/dist/cli/config/writer.js +312 -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 +183 -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 +190 -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 +209 -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 +6 -0
- package/dist/cli/middleware/index.js.map +1 -0
- package/dist/cli/templates/commands.d.ts +20 -0
- package/dist/cli/templates/commands.d.ts.map +1 -0
- package/dist/cli/templates/commands.js +174 -0
- package/dist/cli/templates/commands.js.map +1 -0
- package/dist/cli/templates/content/sf-autonomous.d.ts +7 -0
- package/dist/cli/templates/content/sf-autonomous.d.ts.map +1 -0
- package/dist/cli/templates/content/sf-autonomous.js +78 -0
- package/dist/cli/templates/content/sf-autonomous.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 +68 -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 +78 -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 +64 -0
- package/dist/cli/templates/content/sf-context.js.map +1 -0
- package/dist/cli/templates/content/sf-create-epics.d.ts +7 -0
- package/dist/cli/templates/content/sf-create-epics.d.ts.map +1 -0
- package/dist/cli/templates/content/sf-create-epics.js +70 -0
- package/dist/cli/templates/content/sf-create-epics.js.map +1 -0
- package/dist/cli/templates/content/sf-create-spec.d.ts +7 -0
- package/dist/cli/templates/content/sf-create-spec.d.ts.map +1 -0
- package/dist/cli/templates/content/sf-create-spec.js +67 -0
- package/dist/cli/templates/content/sf-create-spec.js.map +1 -0
- package/dist/cli/templates/content/sf-create-tickets.d.ts +7 -0
- package/dist/cli/templates/content/sf-create-tickets.d.ts.map +1 -0
- package/dist/cli/templates/content/sf-create-tickets.js +76 -0
- package/dist/cli/templates/content/sf-create-tickets.js.map +1 -0
- package/dist/cli/templates/content/sf-epic.d.ts +7 -0
- package/dist/cli/templates/content/sf-epic.d.ts.map +1 -0
- package/dist/cli/templates/content/sf-epic.js +69 -0
- package/dist/cli/templates/content/sf-epic.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 +61 -0
- package/dist/cli/templates/content/sf-help.js.map +1 -0
- package/dist/cli/templates/content/sf-import.d.ts +7 -0
- package/dist/cli/templates/content/sf-import.d.ts.map +1 -0
- package/dist/cli/templates/content/sf-import.js +88 -0
- package/dist/cli/templates/content/sf-import.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 +61 -0
- package/dist/cli/templates/content/sf-init.js.map +1 -0
- package/dist/cli/templates/content/sf-next.d.ts +7 -0
- package/dist/cli/templates/content/sf-next.d.ts.map +1 -0
- package/dist/cli/templates/content/sf-next.js +67 -0
- package/dist/cli/templates/content/sf-next.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 +78 -0
- package/dist/cli/templates/content/sf-reset.js.map +1 -0
- package/dist/cli/templates/content/sf-review.d.ts +7 -0
- package/dist/cli/templates/content/sf-review.d.ts.map +1 -0
- package/dist/cli/templates/content/sf-review.js +67 -0
- package/dist/cli/templates/content/sf-review.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 +64 -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 +67 -0
- package/dist/cli/templates/content/sf-status.js.map +1 -0
- package/dist/cli/templates/content/sf-ticket.d.ts +7 -0
- package/dist/cli/templates/content/sf-ticket.d.ts.map +1 -0
- package/dist/cli/templates/content/sf-ticket.js +76 -0
- package/dist/cli/templates/content/sf-ticket.js.map +1 -0
- package/dist/cli/templates/content/sf-validate.d.ts +7 -0
- package/dist/cli/templates/content/sf-validate.d.ts.map +1 -0
- package/dist/cli/templates/content/sf-validate.js +78 -0
- package/dist/cli/templates/content/sf-validate.js.map +1 -0
- package/dist/cli/templates/index.d.ts +7 -0
- package/dist/cli/templates/index.d.ts.map +1 -0
- package/dist/cli/templates/index.js +7 -0
- package/dist/cli/templates/index.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 +81 -0
- package/dist/cli/ui/colors.js.map +1 -0
- package/dist/cli/ui/dashboard.d.ts +54 -0
- package/dist/cli/ui/dashboard.d.ts.map +1 -0
- package/dist/cli/ui/dashboard.js +339 -0
- package/dist/cli/ui/dashboard.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 +7 -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 +172 -0
- package/dist/cli/ui/output.js.map +1 -0
- package/dist/cli/ui/spinner.d.ts +105 -0
- package/dist/cli/ui/spinner.d.ts.map +1 -0
- package/dist/cli/ui/spinner.js +148 -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 +173 -0
- package/dist/cli/ui/time.js.map +1 -0
- package/dist/lib/format.d.ts +4 -4
- package/dist/lib/format.js +5 -5
- package/dist/server.js +8 -8
- package/dist/server.js.map +1 -1
- package/dist/tools/core/session.js +6 -6
- package/dist/tools/core/session.js.map +1 -1
- package/dist/tools/index.js +9 -9
- package/dist/tools/index.js.map +1 -1
- package/dist/validation/index.js +1 -1
- package/dist/validation/index.js.map +1 -1
- package/package.json +9 -2
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command Templates Module
|
|
3
|
+
*
|
|
4
|
+
* Defines all SpecForge slash commands with their full markdown content
|
|
5
|
+
* for scaffolding to AI CLI tools.
|
|
6
|
+
*/
|
|
7
|
+
// Import all command content
|
|
8
|
+
import { SF_INIT_CONTENT } from './content/sf-init.js';
|
|
9
|
+
import { SF_STATUS_CONTENT } from './content/sf-status.js';
|
|
10
|
+
import { SF_NEXT_CONTENT } from './content/sf-next.js';
|
|
11
|
+
import { SF_TICKET_IMPLEMENTATION_CONTENT } from './content/sf-ticket.js';
|
|
12
|
+
import { SF_RUN_AUTONOMOUS_CONTENT } from './content/sf-autonomous.js';
|
|
13
|
+
import { SF_REVIEW_CONTENT } from './content/sf-review.js';
|
|
14
|
+
import { SF_VALIDATE_CONTENT } from './content/sf-validate.js';
|
|
15
|
+
import { SF_RESET_CONTENT } from './content/sf-reset.js';
|
|
16
|
+
import { SF_ANALYZE_BLOCKERS_CONTENT } from './content/sf-blockers.js';
|
|
17
|
+
import { SF_IMPORT_PLAN_CONTENT } from './content/sf-import.js';
|
|
18
|
+
import { SF_CREATE_SPEC_CONTENT } from './content/sf-create-spec.js';
|
|
19
|
+
import { SF_CREATE_EPICS_CONTENT } from './content/sf-create-epics.js';
|
|
20
|
+
import { SF_CREATE_TICKETS_CONTENT } from './content/sf-create-tickets.js';
|
|
21
|
+
import { SF_CONTEXT_CONTENT } from './content/sf-context.js';
|
|
22
|
+
import { SF_SEARCH_CONTENT } from './content/sf-search.js';
|
|
23
|
+
import { SF_EPIC_CONTENT } from './content/sf-epic.js';
|
|
24
|
+
import { SF_COMMIT_CONTENT } from './content/sf-commit.js';
|
|
25
|
+
import { SF_HELP_CONTENT } from './content/sf-help.js';
|
|
26
|
+
/**
|
|
27
|
+
* Get all command templates
|
|
28
|
+
*/
|
|
29
|
+
export function getCommandTemplates() {
|
|
30
|
+
return [
|
|
31
|
+
// Setup
|
|
32
|
+
{
|
|
33
|
+
name: 'sf-init',
|
|
34
|
+
description: 'Initialize ticket system for a specification',
|
|
35
|
+
argumentHint: '[specification-id]',
|
|
36
|
+
content: SF_INIT_CONTENT,
|
|
37
|
+
category: 'Setup',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: 'sf-context',
|
|
41
|
+
description: 'View or switch working context',
|
|
42
|
+
argumentHint: '[project-or-spec-id]',
|
|
43
|
+
content: SF_CONTEXT_CONTENT,
|
|
44
|
+
category: 'Setup',
|
|
45
|
+
},
|
|
46
|
+
// Status
|
|
47
|
+
{
|
|
48
|
+
name: 'sf-status',
|
|
49
|
+
description: 'Display implementation status with consolidated tools',
|
|
50
|
+
argumentHint: '[specification-id]',
|
|
51
|
+
content: SF_STATUS_CONTENT,
|
|
52
|
+
category: 'Status',
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: 'sf-validate',
|
|
56
|
+
description: 'Validate ticket system health',
|
|
57
|
+
argumentHint: '[specification-id]',
|
|
58
|
+
content: SF_VALIDATE_CONTENT,
|
|
59
|
+
category: 'Status',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'sf-analyze-blockers',
|
|
63
|
+
description: 'Analyze blockers and dependency bottlenecks',
|
|
64
|
+
content: SF_ANALYZE_BLOCKERS_CONTENT,
|
|
65
|
+
category: 'Status',
|
|
66
|
+
},
|
|
67
|
+
// Implementation
|
|
68
|
+
{
|
|
69
|
+
name: 'sf-next',
|
|
70
|
+
description: 'Quick start the next ready ticket',
|
|
71
|
+
content: SF_NEXT_CONTENT,
|
|
72
|
+
category: 'Implementation',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: 'sf-ticket-implementation',
|
|
76
|
+
description: 'Implement a ticket with streamlined workflow',
|
|
77
|
+
argumentHint: '[ticket-id]',
|
|
78
|
+
content: SF_TICKET_IMPLEMENTATION_CONTENT,
|
|
79
|
+
category: 'Implementation',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: 'sf-run-autonomous',
|
|
83
|
+
description: 'Run autonomous implementation for multiple tickets',
|
|
84
|
+
argumentHint: '[max-tickets]',
|
|
85
|
+
content: SF_RUN_AUTONOMOUS_CONTENT,
|
|
86
|
+
category: 'Implementation',
|
|
87
|
+
},
|
|
88
|
+
// Planning
|
|
89
|
+
{
|
|
90
|
+
name: 'sf-import-plan',
|
|
91
|
+
description: 'Transform a plan into a complete SpecForge specification',
|
|
92
|
+
argumentHint: '<plan-file-path>',
|
|
93
|
+
content: SF_IMPORT_PLAN_CONTENT,
|
|
94
|
+
category: 'Planning',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
name: 'sf-create-spec',
|
|
98
|
+
description: 'Create a SpecForge specification with patterns',
|
|
99
|
+
argumentHint: '<plan-file-path>',
|
|
100
|
+
content: SF_CREATE_SPEC_CONTENT,
|
|
101
|
+
category: 'Planning',
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
name: 'sf-create-epics',
|
|
105
|
+
description: 'Create epics with epic-level patterns',
|
|
106
|
+
argumentHint: '<specification-id>',
|
|
107
|
+
content: SF_CREATE_EPICS_CONTENT,
|
|
108
|
+
category: 'Planning',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: 'sf-create-tickets',
|
|
112
|
+
description: 'Create detailed tickets with full implementation context',
|
|
113
|
+
argumentHint: '<epic-id>',
|
|
114
|
+
content: SF_CREATE_TICKETS_CONTENT,
|
|
115
|
+
category: 'Planning',
|
|
116
|
+
},
|
|
117
|
+
// Review
|
|
118
|
+
{
|
|
119
|
+
name: 'sf-review',
|
|
120
|
+
description: 'Review accomplishments and progress analysis',
|
|
121
|
+
argumentHint: '[specification-id]',
|
|
122
|
+
content: SF_REVIEW_CONTENT,
|
|
123
|
+
category: 'Review',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
name: 'sf-search',
|
|
127
|
+
description: 'Search tickets by text, tags, or filters',
|
|
128
|
+
argumentHint: '<query>',
|
|
129
|
+
content: SF_SEARCH_CONTENT,
|
|
130
|
+
category: 'Review',
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
name: 'sf-epic',
|
|
134
|
+
description: 'View epic details and progress',
|
|
135
|
+
argumentHint: '<epic-id>',
|
|
136
|
+
content: SF_EPIC_CONTENT,
|
|
137
|
+
category: 'Review',
|
|
138
|
+
},
|
|
139
|
+
// Utilities
|
|
140
|
+
{
|
|
141
|
+
name: 'sf-reset',
|
|
142
|
+
description: 'Reset ticket statuses with dependency awareness',
|
|
143
|
+
argumentHint: '[specification-id]',
|
|
144
|
+
content: SF_RESET_CONTENT,
|
|
145
|
+
category: 'Utilities',
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
name: 'sf-commit',
|
|
149
|
+
description: 'Commit changes with SpecForge ticket metadata',
|
|
150
|
+
argumentHint: '[ticket-id]',
|
|
151
|
+
content: SF_COMMIT_CONTENT,
|
|
152
|
+
category: 'Utilities',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
name: 'sf-help',
|
|
156
|
+
description: 'Quick reference for all SpecForge commands',
|
|
157
|
+
content: SF_HELP_CONTENT,
|
|
158
|
+
category: 'Utilities',
|
|
159
|
+
},
|
|
160
|
+
];
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Get a specific command template by name
|
|
164
|
+
*/
|
|
165
|
+
export function getCommandTemplate(name) {
|
|
166
|
+
return getCommandTemplates().find(t => t.name === name);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Get command templates by category
|
|
170
|
+
*/
|
|
171
|
+
export function getCommandsByCategory(category) {
|
|
172
|
+
return getCommandTemplates().filter(t => t.category === category);
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/cli/templates/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Run-Autonomous Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for running autonomous implementation for multiple tickets.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SF_RUN_AUTONOMOUS_CONTENT = "# Run Autonomous Implementation (SpecForge)\n\nExecute autonomous batch implementation of ready tickets.\n\n## Arguments\n- `$ARGUMENTS` - Optional: Maximum number of tickets to implement (default: 5)\n\n## Task\n\n### 1. Get Ready Tickets\n\n**MCP Calls:**\n```typescript\nget_working_context()\nlist_tickets({\n specificationId,\n status: 'ready',\n sortBy: 'priority'\n})\n```\n\n### 2. For Each Ticket (up to max)\n\n**MCP Calls:**\n```typescript\n// Set context\nset_working_context({ ticketId: ticket.id })\n\n// Update status\nupdate_ticket({\n ticketId: ticket.id,\n status: 'in_progress'\n})\n\n// Get full details\nget_ticket(ticket.id)\n\n// Implement ticket\n// ... implementation logic ...\n\n// Mark complete\nupdate_ticket({\n ticketId: ticket.id,\n status: 'done'\n})\n```\n\n### 3. Display Summary\n\n**Output:**\n```\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nAUTONOMOUS IMPLEMENTATION COMPLETE\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nCompleted: {completedCount}/{attemptedCount}\nDuration: {duration}\n\nCOMPLETED TICKETS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2713 E{n}-T{m} \u2502 {title}\n\nFAILED TICKETS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2717 E{n}-T{m} \u2502 {title} \u2502 {reason}\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n```\n\n## Notes\n- Implements tickets in priority order\n- Stops on errors or when max reached\n- Use /sf-review to see detailed results\n";
|
|
7
|
+
//# sourceMappingURL=sf-autonomous.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-autonomous.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-autonomous.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,yBAAyB,s1FAuErC,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Run-Autonomous Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for running autonomous implementation for multiple tickets.
|
|
5
|
+
*/
|
|
6
|
+
export const SF_RUN_AUTONOMOUS_CONTENT = `# Run Autonomous Implementation (SpecForge)
|
|
7
|
+
|
|
8
|
+
Execute autonomous batch implementation of ready tickets.
|
|
9
|
+
|
|
10
|
+
## Arguments
|
|
11
|
+
- \`$ARGUMENTS\` - Optional: Maximum number of tickets to implement (default: 5)
|
|
12
|
+
|
|
13
|
+
## Task
|
|
14
|
+
|
|
15
|
+
### 1. Get Ready Tickets
|
|
16
|
+
|
|
17
|
+
**MCP Calls:**
|
|
18
|
+
\`\`\`typescript
|
|
19
|
+
get_working_context()
|
|
20
|
+
list_tickets({
|
|
21
|
+
specificationId,
|
|
22
|
+
status: 'ready',
|
|
23
|
+
sortBy: 'priority'
|
|
24
|
+
})
|
|
25
|
+
\`\`\`
|
|
26
|
+
|
|
27
|
+
### 2. For Each Ticket (up to max)
|
|
28
|
+
|
|
29
|
+
**MCP Calls:**
|
|
30
|
+
\`\`\`typescript
|
|
31
|
+
// Set context
|
|
32
|
+
set_working_context({ ticketId: ticket.id })
|
|
33
|
+
|
|
34
|
+
// Update status
|
|
35
|
+
update_ticket({
|
|
36
|
+
ticketId: ticket.id,
|
|
37
|
+
status: 'in_progress'
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
// Get full details
|
|
41
|
+
get_ticket(ticket.id)
|
|
42
|
+
|
|
43
|
+
// Implement ticket
|
|
44
|
+
// ... implementation logic ...
|
|
45
|
+
|
|
46
|
+
// Mark complete
|
|
47
|
+
update_ticket({
|
|
48
|
+
ticketId: ticket.id,
|
|
49
|
+
status: 'done'
|
|
50
|
+
})
|
|
51
|
+
\`\`\`
|
|
52
|
+
|
|
53
|
+
### 3. Display Summary
|
|
54
|
+
|
|
55
|
+
**Output:**
|
|
56
|
+
\`\`\`
|
|
57
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
58
|
+
AUTONOMOUS IMPLEMENTATION COMPLETE
|
|
59
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
60
|
+
Completed: {completedCount}/{attemptedCount}
|
|
61
|
+
Duration: {duration}
|
|
62
|
+
|
|
63
|
+
COMPLETED TICKETS
|
|
64
|
+
─────────────────────────────────────────────────────────────────
|
|
65
|
+
✓ E{n}-T{m} │ {title}
|
|
66
|
+
|
|
67
|
+
FAILED TICKETS
|
|
68
|
+
─────────────────────────────────────────────────────────────────
|
|
69
|
+
✗ E{n}-T{m} │ {title} │ {reason}
|
|
70
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
71
|
+
\`\`\`
|
|
72
|
+
|
|
73
|
+
## Notes
|
|
74
|
+
- Implements tickets in priority order
|
|
75
|
+
- Stops on errors or when max reached
|
|
76
|
+
- Use /sf-review to see detailed results
|
|
77
|
+
`;
|
|
78
|
+
//# sourceMappingURL=sf-autonomous.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-autonomous.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-autonomous.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuExC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Analyze-Blockers Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for analyzing blockers and dependency bottlenecks.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SF_ANALYZE_BLOCKERS_CONTENT = "# Analyze Blockers (SpecForge)\n\nAnalyze dependency bottlenecks and identify critical path tickets.\n\n## Task\n\n### 1. Get Implementation Data\n\n**MCP Calls:**\n```typescript\nget_working_context()\nget_specification(specificationId)\nlist_epics({ specificationId })\nlist_tickets({ specificationId })\n```\n\n### 2. Analyze Dependencies\n\n**Logic:**\n- Build dependency graph\n- Calculate blocking relationships\n- Identify critical path\n- Find bottleneck tickets\n\n### 3. Display Analysis Results\n\n**Output:**\n```\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nBLOCKER ANALYSIS\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nSpecification: {title}\n\nCRITICAL PATH\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nLength: {pathLength} tickets\nImpact: {blockedCount} tickets blocked\n\nE{n}-T{m} \u2192 E{n}-T{m} \u2192 E{n}-T{m} \u2192 ...\n\nHIGH-IMPACT BLOCKERS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nE{n}-T{m} \u2502 {title} \u2502 Blocking {count} tickets\n \u21B3 E{n}-T{m}, E{n}-T{m}, E{n}-T{m}\n\nBLOCKED TICKETS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nE{n}-T{m} \u2502 {title}\n \u26A0 Waiting on: E{n}-T{m} ({status})\n\nRECOMMENDATIONS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2022 Prioritize E{n}-T{m} to unblock {count} tickets\n\u2022 Review dependency chain for E{n}-T{m}\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n```\n\n## Notes\n- Identifies tickets blocking the most work\n- Shows critical path through implementation\n- Provides actionable recommendations\n";
|
|
7
|
+
//# sourceMappingURL=sf-blockers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-blockers.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-blockers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,2BAA2B,ylHA6DvC,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Analyze-Blockers Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for analyzing blockers and dependency bottlenecks.
|
|
5
|
+
*/
|
|
6
|
+
export const SF_ANALYZE_BLOCKERS_CONTENT = `# Analyze Blockers (SpecForge)
|
|
7
|
+
|
|
8
|
+
Analyze dependency bottlenecks and identify critical path tickets.
|
|
9
|
+
|
|
10
|
+
## Task
|
|
11
|
+
|
|
12
|
+
### 1. Get Implementation Data
|
|
13
|
+
|
|
14
|
+
**MCP Calls:**
|
|
15
|
+
\`\`\`typescript
|
|
16
|
+
get_working_context()
|
|
17
|
+
get_specification(specificationId)
|
|
18
|
+
list_epics({ specificationId })
|
|
19
|
+
list_tickets({ specificationId })
|
|
20
|
+
\`\`\`
|
|
21
|
+
|
|
22
|
+
### 2. Analyze Dependencies
|
|
23
|
+
|
|
24
|
+
**Logic:**
|
|
25
|
+
- Build dependency graph
|
|
26
|
+
- Calculate blocking relationships
|
|
27
|
+
- Identify critical path
|
|
28
|
+
- Find bottleneck tickets
|
|
29
|
+
|
|
30
|
+
### 3. Display Analysis Results
|
|
31
|
+
|
|
32
|
+
**Output:**
|
|
33
|
+
\`\`\`
|
|
34
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
35
|
+
BLOCKER ANALYSIS
|
|
36
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
37
|
+
Specification: {title}
|
|
38
|
+
|
|
39
|
+
CRITICAL PATH
|
|
40
|
+
─────────────────────────────────────────────────────────────────
|
|
41
|
+
Length: {pathLength} tickets
|
|
42
|
+
Impact: {blockedCount} tickets blocked
|
|
43
|
+
|
|
44
|
+
E{n}-T{m} → E{n}-T{m} → E{n}-T{m} → ...
|
|
45
|
+
|
|
46
|
+
HIGH-IMPACT BLOCKERS
|
|
47
|
+
─────────────────────────────────────────────────────────────────
|
|
48
|
+
E{n}-T{m} │ {title} │ Blocking {count} tickets
|
|
49
|
+
↳ E{n}-T{m}, E{n}-T{m}, E{n}-T{m}
|
|
50
|
+
|
|
51
|
+
BLOCKED TICKETS
|
|
52
|
+
─────────────────────────────────────────────────────────────────
|
|
53
|
+
E{n}-T{m} │ {title}
|
|
54
|
+
⚠ Waiting on: E{n}-T{m} ({status})
|
|
55
|
+
|
|
56
|
+
RECOMMENDATIONS
|
|
57
|
+
─────────────────────────────────────────────────────────────────
|
|
58
|
+
• Prioritize E{n}-T{m} to unblock {count} tickets
|
|
59
|
+
• Review dependency chain for E{n}-T{m}
|
|
60
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
61
|
+
\`\`\`
|
|
62
|
+
|
|
63
|
+
## Notes
|
|
64
|
+
- Identifies tickets blocking the most work
|
|
65
|
+
- Shows critical path through implementation
|
|
66
|
+
- Provides actionable recommendations
|
|
67
|
+
`;
|
|
68
|
+
//# sourceMappingURL=sf-blockers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-blockers.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-blockers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6D1C,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Commit Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for committing changes with SpecForge ticket metadata.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SF_COMMIT_CONTENT = "# Commit Changes (SpecForge)\n\nCreate a git commit with SpecForge ticket metadata.\n\n## Arguments\n- `$ARGUMENTS` - Optional: Ticket ID (uses context if not provided)\n\n## Task\n\n### 1. Get Ticket Context\n\n**MCP Calls:**\n```typescript\nif ($ARGUMENTS) {\n get_ticket($ARGUMENTS)\n} else {\n get_working_context()\n get_ticket(context.ticketId)\n}\n```\n\n### 2. Generate Commit Message\n\n**Logic:**\n- Format: `feat(scope): description (TICKET-ID)`\n- Extract scope from epic\n- Use ticket title as description\n- Add ticket ID reference\n\n### 3. Create Commit\n\n**Shell:**\n```bash\ngit add .\ngit commit -m \"{type}({scope}): {description} ({ticketId})\"\n```\n\n### 4. Update Ticket Status\n\n**MCP Calls:**\n```typescript\nupdate_ticket({\n ticketId: ticket.id,\n status: 'done',\n completedAt: new Date().toISOString()\n})\n```\n\n### 5. Display Commit Result\n\n**Output:**\n```\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nCOMMIT CREATED\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nTicket: E{n}-T{m}\nMessage: {commitMessage}\nHash: {commitHash}\n\nTICKET COMPLETED\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2713 E{n}-T{m} marked as done\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\nNext: Run /sf-next for the next ticket\n```\n\n## Notes\n- Automatically marks ticket as done\n- Uses conventional commit format\n- Includes ticket ID for traceability\n";
|
|
7
|
+
//# sourceMappingURL=sf-commit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-commit.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-commit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,iBAAiB,k9EAuE7B,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Commit Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for committing changes with SpecForge ticket metadata.
|
|
5
|
+
*/
|
|
6
|
+
export const SF_COMMIT_CONTENT = `# Commit Changes (SpecForge)
|
|
7
|
+
|
|
8
|
+
Create a git commit with SpecForge ticket metadata.
|
|
9
|
+
|
|
10
|
+
## Arguments
|
|
11
|
+
- \`$ARGUMENTS\` - Optional: Ticket ID (uses context if not provided)
|
|
12
|
+
|
|
13
|
+
## Task
|
|
14
|
+
|
|
15
|
+
### 1. Get Ticket Context
|
|
16
|
+
|
|
17
|
+
**MCP Calls:**
|
|
18
|
+
\`\`\`typescript
|
|
19
|
+
if ($ARGUMENTS) {
|
|
20
|
+
get_ticket($ARGUMENTS)
|
|
21
|
+
} else {
|
|
22
|
+
get_working_context()
|
|
23
|
+
get_ticket(context.ticketId)
|
|
24
|
+
}
|
|
25
|
+
\`\`\`
|
|
26
|
+
|
|
27
|
+
### 2. Generate Commit Message
|
|
28
|
+
|
|
29
|
+
**Logic:**
|
|
30
|
+
- Format: \`feat(scope): description (TICKET-ID)\`
|
|
31
|
+
- Extract scope from epic
|
|
32
|
+
- Use ticket title as description
|
|
33
|
+
- Add ticket ID reference
|
|
34
|
+
|
|
35
|
+
### 3. Create Commit
|
|
36
|
+
|
|
37
|
+
**Shell:**
|
|
38
|
+
\`\`\`bash
|
|
39
|
+
git add .
|
|
40
|
+
git commit -m "{type}({scope}): {description} ({ticketId})"
|
|
41
|
+
\`\`\`
|
|
42
|
+
|
|
43
|
+
### 4. Update Ticket Status
|
|
44
|
+
|
|
45
|
+
**MCP Calls:**
|
|
46
|
+
\`\`\`typescript
|
|
47
|
+
update_ticket({
|
|
48
|
+
ticketId: ticket.id,
|
|
49
|
+
status: 'done',
|
|
50
|
+
completedAt: new Date().toISOString()
|
|
51
|
+
})
|
|
52
|
+
\`\`\`
|
|
53
|
+
|
|
54
|
+
### 5. Display Commit Result
|
|
55
|
+
|
|
56
|
+
**Output:**
|
|
57
|
+
\`\`\`
|
|
58
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
59
|
+
COMMIT CREATED
|
|
60
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
61
|
+
Ticket: E{n}-T{m}
|
|
62
|
+
Message: {commitMessage}
|
|
63
|
+
Hash: {commitHash}
|
|
64
|
+
|
|
65
|
+
TICKET COMPLETED
|
|
66
|
+
─────────────────────────────────────────────────────────────────
|
|
67
|
+
✓ E{n}-T{m} marked as done
|
|
68
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
69
|
+
|
|
70
|
+
Next: Run /sf-next for the next ticket
|
|
71
|
+
\`\`\`
|
|
72
|
+
|
|
73
|
+
## Notes
|
|
74
|
+
- Automatically marks ticket as done
|
|
75
|
+
- Uses conventional commit format
|
|
76
|
+
- Includes ticket ID for traceability
|
|
77
|
+
`;
|
|
78
|
+
//# sourceMappingURL=sf-commit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-commit.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-commit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuEhC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Context Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for viewing or switching working context.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SF_CONTEXT_CONTENT = "# Working Context (SpecForge)\n\nQuickly view or switch the current working context.\n\n## Arguments\n- `$ARGUMENTS` - Optional: Project or Specification ID to switch to\n\n## Task\n\n### 1. If No Arguments - Show Current Context\n\n**MCP Calls:**\n```typescript\nget_working_context()\n```\n\n**Output:**\n```\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nWORKING CONTEXT\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nProject: {project.name}\nSpecification: {spec.title}\nEpic: {epic.title} (if set)\nTicket: E{n}-T{m} {title} (if set)\n\nSession: {active/none}\nProgress: {done}/{total} ({pct}%)\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n```\n\n### 2. If Arguments - Switch Context\n\n**MCP Calls:**\n```typescript\n// Try as specification first\nget_specification($ARGUMENTS)\n\n// If not found, try as project\nget_project($ARGUMENTS)\n\n// Set context\nset_working_context({\n projectId: project.id,\n specificationId: spec?.id\n})\n```\n\n**Output:**\n```\n\u2713 Switched to: {name}\n```\n\n## Notes\n- No argument = show current context\n- With argument = switch context\n- Auto-detects if ID is project or specification\n";
|
|
7
|
+
//# sourceMappingURL=sf-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-context.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,kBAAkB,y5DAyD9B,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Context Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for viewing or switching working context.
|
|
5
|
+
*/
|
|
6
|
+
export const SF_CONTEXT_CONTENT = `# Working Context (SpecForge)
|
|
7
|
+
|
|
8
|
+
Quickly view or switch the current working context.
|
|
9
|
+
|
|
10
|
+
## Arguments
|
|
11
|
+
- \`$ARGUMENTS\` - Optional: Project or Specification ID to switch to
|
|
12
|
+
|
|
13
|
+
## Task
|
|
14
|
+
|
|
15
|
+
### 1. If No Arguments - Show Current Context
|
|
16
|
+
|
|
17
|
+
**MCP Calls:**
|
|
18
|
+
\`\`\`typescript
|
|
19
|
+
get_working_context()
|
|
20
|
+
\`\`\`
|
|
21
|
+
|
|
22
|
+
**Output:**
|
|
23
|
+
\`\`\`
|
|
24
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
25
|
+
WORKING CONTEXT
|
|
26
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
27
|
+
Project: {project.name}
|
|
28
|
+
Specification: {spec.title}
|
|
29
|
+
Epic: {epic.title} (if set)
|
|
30
|
+
Ticket: E{n}-T{m} {title} (if set)
|
|
31
|
+
|
|
32
|
+
Session: {active/none}
|
|
33
|
+
Progress: {done}/{total} ({pct}%)
|
|
34
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
35
|
+
\`\`\`
|
|
36
|
+
|
|
37
|
+
### 2. If Arguments - Switch Context
|
|
38
|
+
|
|
39
|
+
**MCP Calls:**
|
|
40
|
+
\`\`\`typescript
|
|
41
|
+
// Try as specification first
|
|
42
|
+
get_specification($ARGUMENTS)
|
|
43
|
+
|
|
44
|
+
// If not found, try as project
|
|
45
|
+
get_project($ARGUMENTS)
|
|
46
|
+
|
|
47
|
+
// Set context
|
|
48
|
+
set_working_context({
|
|
49
|
+
projectId: project.id,
|
|
50
|
+
specificationId: spec?.id
|
|
51
|
+
})
|
|
52
|
+
\`\`\`
|
|
53
|
+
|
|
54
|
+
**Output:**
|
|
55
|
+
\`\`\`
|
|
56
|
+
✓ Switched to: {name}
|
|
57
|
+
\`\`\`
|
|
58
|
+
|
|
59
|
+
## Notes
|
|
60
|
+
- No argument = show current context
|
|
61
|
+
- With argument = switch context
|
|
62
|
+
- Auto-detects if ID is project or specification
|
|
63
|
+
`;
|
|
64
|
+
//# sourceMappingURL=sf-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-context.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDjC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Create-Epics Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for creating epics with epic-level patterns from plan phases.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SF_CREATE_EPICS_CONTENT = "# Create Epics (SpecForge)\n\nCreate epics for a specification with patterns extracted from plan phases.\n\n## Arguments\n- `$ARGUMENTS` - Required: Specification ID\n\n## Task\n\n### 1. Get Specification\n\n**MCP Calls:**\n```typescript\nget_specification($ARGUMENTS)\n```\n\n### 2. Read Original Plan\n\n**Logic:**\n- Locate original plan file from specification metadata\n- Parse plan phases/sections\n- Extract epic-level descriptions\n- Identify patterns per epic\n\n### 3. Create Epics\n\n**MCP Calls:**\n```typescript\n// For each phase/section in plan\nfor (const phase of phases) {\n await create_epic({\n specificationId: $ARGUMENTS,\n title: phase.title,\n description: phase.description,\n patterns: phase.patterns,\n order: phase.order\n })\n}\n```\n\n### 4. Display Creation Results\n\n**Output:**\n```\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nEPICS CREATED\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nSpecification: {title}\n\nCREATED EPICS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nE1 \u2502 {title} \u2502 {description}\nE2 \u2502 {title} \u2502 {description}\nE3 \u2502 {title} \u2502 {description}\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\nNext: Run /sf-create-tickets <epic-id> for each epic\n```\n\n## Notes\n- Creates epic structure from plan phases\n- Preserves patterns for ticket creation\n- Use /sf-create-tickets for each epic\n";
|
|
7
|
+
//# sourceMappingURL=sf-create-epics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-create-epics.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-create-epics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,uBAAuB,m9EA+DnC,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Create-Epics Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for creating epics with epic-level patterns from plan phases.
|
|
5
|
+
*/
|
|
6
|
+
export const SF_CREATE_EPICS_CONTENT = `# Create Epics (SpecForge)
|
|
7
|
+
|
|
8
|
+
Create epics for a specification with patterns extracted from plan phases.
|
|
9
|
+
|
|
10
|
+
## Arguments
|
|
11
|
+
- \`$ARGUMENTS\` - Required: Specification ID
|
|
12
|
+
|
|
13
|
+
## Task
|
|
14
|
+
|
|
15
|
+
### 1. Get Specification
|
|
16
|
+
|
|
17
|
+
**MCP Calls:**
|
|
18
|
+
\`\`\`typescript
|
|
19
|
+
get_specification($ARGUMENTS)
|
|
20
|
+
\`\`\`
|
|
21
|
+
|
|
22
|
+
### 2. Read Original Plan
|
|
23
|
+
|
|
24
|
+
**Logic:**
|
|
25
|
+
- Locate original plan file from specification metadata
|
|
26
|
+
- Parse plan phases/sections
|
|
27
|
+
- Extract epic-level descriptions
|
|
28
|
+
- Identify patterns per epic
|
|
29
|
+
|
|
30
|
+
### 3. Create Epics
|
|
31
|
+
|
|
32
|
+
**MCP Calls:**
|
|
33
|
+
\`\`\`typescript
|
|
34
|
+
// For each phase/section in plan
|
|
35
|
+
for (const phase of phases) {
|
|
36
|
+
await create_epic({
|
|
37
|
+
specificationId: $ARGUMENTS,
|
|
38
|
+
title: phase.title,
|
|
39
|
+
description: phase.description,
|
|
40
|
+
patterns: phase.patterns,
|
|
41
|
+
order: phase.order
|
|
42
|
+
})
|
|
43
|
+
}
|
|
44
|
+
\`\`\`
|
|
45
|
+
|
|
46
|
+
### 4. Display Creation Results
|
|
47
|
+
|
|
48
|
+
**Output:**
|
|
49
|
+
\`\`\`
|
|
50
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
51
|
+
EPICS CREATED
|
|
52
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
53
|
+
Specification: {title}
|
|
54
|
+
|
|
55
|
+
CREATED EPICS
|
|
56
|
+
─────────────────────────────────────────────────────────────────
|
|
57
|
+
E1 │ {title} │ {description}
|
|
58
|
+
E2 │ {title} │ {description}
|
|
59
|
+
E3 │ {title} │ {description}
|
|
60
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
61
|
+
|
|
62
|
+
Next: Run /sf-create-tickets <epic-id> for each epic
|
|
63
|
+
\`\`\`
|
|
64
|
+
|
|
65
|
+
## Notes
|
|
66
|
+
- Creates epic structure from plan phases
|
|
67
|
+
- Preserves patterns for ticket creation
|
|
68
|
+
- Use /sf-create-tickets for each epic
|
|
69
|
+
`;
|
|
70
|
+
//# sourceMappingURL=sf-create-epics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-create-epics.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-create-epics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DtC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Create-Spec Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for creating a SpecForge specification with patterns from a plan.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SF_CREATE_SPEC_CONTENT = "# Create Specification (SpecForge)\n\nCreate a SpecForge specification structure with patterns extracted from a plan document.\n\n## Arguments\n- `$ARGUMENTS` - Required: Path to plan markdown file\n\n## Task\n\n### 1. Read and Analyze Plan\n\n**Logic:**\n- Read file at $ARGUMENTS\n- Extract specification metadata\n- Identify patterns and guardrails\n- Parse high-level structure\n- Extract success criteria\n\n### 2. Create Specification\n\n**MCP Calls:**\n```typescript\ncreate_specification({\n title: extractedTitle,\n description: extractedDescription,\n patterns: extractedPatterns,\n guardrails: extractedGuardrails,\n successCriteria: extractedCriteria\n})\n```\n\n### 3. Display Creation Results\n\n**Output:**\n```\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nSPECIFICATION CREATED\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nTitle: {title}\nID: {specificationId}\n\nEXTRACTED PATTERNS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2022 {pattern1}\n\u2022 {pattern2}\n\u2022 {pattern3}\n\nGUARDRAILS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2022 {guardrail1}\n\u2022 {guardrail2}\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\nNext: Run /sf-create-epics {specificationId} to create epics\n```\n\n## Notes\n- Creates specification structure only\n- Extracts patterns for epic/ticket creation\n- Use /sf-create-epics to add epics\n";
|
|
7
|
+
//# sourceMappingURL=sf-create-spec.d.ts.map
|