@specforge/mcp 2.0.10 → 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/index.js +3 -3
- package/dist/tools/index.js.map +1 -1
- package/package.json +9 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-create-spec.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-create-spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,sBAAsB,gxFA4DlC,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Create-Spec Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for creating a SpecForge specification with patterns from a plan.
|
|
5
|
+
*/
|
|
6
|
+
export const SF_CREATE_SPEC_CONTENT = `# Create Specification (SpecForge)
|
|
7
|
+
|
|
8
|
+
Create a SpecForge specification structure with patterns extracted from a plan document.
|
|
9
|
+
|
|
10
|
+
## Arguments
|
|
11
|
+
- \`$ARGUMENTS\` - Required: Path to plan markdown file
|
|
12
|
+
|
|
13
|
+
## Task
|
|
14
|
+
|
|
15
|
+
### 1. Read and Analyze Plan
|
|
16
|
+
|
|
17
|
+
**Logic:**
|
|
18
|
+
- Read file at $ARGUMENTS
|
|
19
|
+
- Extract specification metadata
|
|
20
|
+
- Identify patterns and guardrails
|
|
21
|
+
- Parse high-level structure
|
|
22
|
+
- Extract success criteria
|
|
23
|
+
|
|
24
|
+
### 2. Create Specification
|
|
25
|
+
|
|
26
|
+
**MCP Calls:**
|
|
27
|
+
\`\`\`typescript
|
|
28
|
+
create_specification({
|
|
29
|
+
title: extractedTitle,
|
|
30
|
+
description: extractedDescription,
|
|
31
|
+
patterns: extractedPatterns,
|
|
32
|
+
guardrails: extractedGuardrails,
|
|
33
|
+
successCriteria: extractedCriteria
|
|
34
|
+
})
|
|
35
|
+
\`\`\`
|
|
36
|
+
|
|
37
|
+
### 3. Display Creation Results
|
|
38
|
+
|
|
39
|
+
**Output:**
|
|
40
|
+
\`\`\`
|
|
41
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
42
|
+
SPECIFICATION CREATED
|
|
43
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
44
|
+
Title: {title}
|
|
45
|
+
ID: {specificationId}
|
|
46
|
+
|
|
47
|
+
EXTRACTED PATTERNS
|
|
48
|
+
─────────────────────────────────────────────────────────────────
|
|
49
|
+
• {pattern1}
|
|
50
|
+
• {pattern2}
|
|
51
|
+
• {pattern3}
|
|
52
|
+
|
|
53
|
+
GUARDRAILS
|
|
54
|
+
─────────────────────────────────────────────────────────────────
|
|
55
|
+
• {guardrail1}
|
|
56
|
+
• {guardrail2}
|
|
57
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
58
|
+
|
|
59
|
+
Next: Run /sf-create-epics {specificationId} to create epics
|
|
60
|
+
\`\`\`
|
|
61
|
+
|
|
62
|
+
## Notes
|
|
63
|
+
- Creates specification structure only
|
|
64
|
+
- Extracts patterns for epic/ticket creation
|
|
65
|
+
- Use /sf-create-epics to add epics
|
|
66
|
+
`;
|
|
67
|
+
//# sourceMappingURL=sf-create-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-create-spec.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-create-spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DrC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Create-Tickets Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for creating detailed tickets individually with full implementation context.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SF_CREATE_TICKETS_CONTENT = "# Create Tickets (SpecForge)\n\nCreate detailed tickets for an epic with full implementation context.\n\n## Arguments\n- `$ARGUMENTS` - Required: Epic ID\n\n## Task\n\n### 1. Get Epic Context\n\n**MCP Calls:**\n```typescript\nget_epic($ARGUMENTS)\nget_specification(epic.specificationId)\n```\n\n### 2. Extract Ticket Definitions\n\n**Logic:**\n- Read epic description and patterns\n- Parse task breakdown\n- Extract dependencies\n- Generate acceptance criteria\n- Add implementation guidance\n\n### 3. Create Tickets\n\n**MCP Calls:**\n```typescript\n// For each task in epic\nfor (const task of tasks) {\n await create_ticket({\n epicId: $ARGUMENTS,\n title: task.title,\n description: task.description,\n acceptanceCriteria: task.criteria,\n dependencies: task.dependencies,\n implementationGuidance: task.guidance,\n estimatedComplexity: task.complexity\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\nTICKETS 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\nEpic: E{n} - {epicTitle}\n\nCREATED 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}-T1 \u2502 {title} \u2502 {complexity}\nE{n}-T2 \u2502 {title} \u2502 {complexity} \u2502 Depends: E{n}-T1\nE{n}-T3 \u2502 {title} \u2502 {complexity}\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\nTotal: {ticketCount} tickets created\n\nNext: Run /sf-status to see overall progress\n```\n\n## Notes\n- Creates tickets with full implementation details\n- Establishes dependency relationships\n- Use /sf-next to start implementation\n";
|
|
7
|
+
//# sourceMappingURL=sf-create-tickets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-create-tickets.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-create-tickets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,yBAAyB,upFAqErC,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Create-Tickets Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for creating detailed tickets individually with full implementation context.
|
|
5
|
+
*/
|
|
6
|
+
export const SF_CREATE_TICKETS_CONTENT = `# Create Tickets (SpecForge)
|
|
7
|
+
|
|
8
|
+
Create detailed tickets for an epic with full implementation context.
|
|
9
|
+
|
|
10
|
+
## Arguments
|
|
11
|
+
- \`$ARGUMENTS\` - Required: Epic ID
|
|
12
|
+
|
|
13
|
+
## Task
|
|
14
|
+
|
|
15
|
+
### 1. Get Epic Context
|
|
16
|
+
|
|
17
|
+
**MCP Calls:**
|
|
18
|
+
\`\`\`typescript
|
|
19
|
+
get_epic($ARGUMENTS)
|
|
20
|
+
get_specification(epic.specificationId)
|
|
21
|
+
\`\`\`
|
|
22
|
+
|
|
23
|
+
### 2. Extract Ticket Definitions
|
|
24
|
+
|
|
25
|
+
**Logic:**
|
|
26
|
+
- Read epic description and patterns
|
|
27
|
+
- Parse task breakdown
|
|
28
|
+
- Extract dependencies
|
|
29
|
+
- Generate acceptance criteria
|
|
30
|
+
- Add implementation guidance
|
|
31
|
+
|
|
32
|
+
### 3. Create Tickets
|
|
33
|
+
|
|
34
|
+
**MCP Calls:**
|
|
35
|
+
\`\`\`typescript
|
|
36
|
+
// For each task in epic
|
|
37
|
+
for (const task of tasks) {
|
|
38
|
+
await create_ticket({
|
|
39
|
+
epicId: $ARGUMENTS,
|
|
40
|
+
title: task.title,
|
|
41
|
+
description: task.description,
|
|
42
|
+
acceptanceCriteria: task.criteria,
|
|
43
|
+
dependencies: task.dependencies,
|
|
44
|
+
implementationGuidance: task.guidance,
|
|
45
|
+
estimatedComplexity: task.complexity
|
|
46
|
+
})
|
|
47
|
+
}
|
|
48
|
+
\`\`\`
|
|
49
|
+
|
|
50
|
+
### 4. Display Creation Results
|
|
51
|
+
|
|
52
|
+
**Output:**
|
|
53
|
+
\`\`\`
|
|
54
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
55
|
+
TICKETS CREATED
|
|
56
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
57
|
+
Epic: E{n} - {epicTitle}
|
|
58
|
+
|
|
59
|
+
CREATED TICKETS
|
|
60
|
+
─────────────────────────────────────────────────────────────────
|
|
61
|
+
E{n}-T1 │ {title} │ {complexity}
|
|
62
|
+
E{n}-T2 │ {title} │ {complexity} │ Depends: E{n}-T1
|
|
63
|
+
E{n}-T3 │ {title} │ {complexity}
|
|
64
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
65
|
+
|
|
66
|
+
Total: {ticketCount} tickets created
|
|
67
|
+
|
|
68
|
+
Next: Run /sf-status to see overall progress
|
|
69
|
+
\`\`\`
|
|
70
|
+
|
|
71
|
+
## Notes
|
|
72
|
+
- Creates tickets with full implementation details
|
|
73
|
+
- Establishes dependency relationships
|
|
74
|
+
- Use /sf-next to start implementation
|
|
75
|
+
`;
|
|
76
|
+
//# sourceMappingURL=sf-create-tickets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-create-tickets.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-create-tickets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqExC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Epic Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for viewing epic details and progress.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SF_EPIC_CONTENT = "# View Epic (SpecForge)\n\nView detailed information about a specific epic and its progress.\n\n## Arguments\n- `$ARGUMENTS` - Required: Epic ID (e.g., E1)\n\n## Task\n\n### 1. Get Epic Details\n\n**MCP Calls:**\n```typescript\nget_epic($ARGUMENTS)\nget_specification(epic.specificationId)\nlist_tickets({ epicId: $ARGUMENTS })\n```\n\n### 2. Calculate Progress\n\n**Logic:**\n- Count tickets by status\n- Calculate completion percentage\n- Identify blockers\n- Track velocity\n\n### 3. Display Epic Overview\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\nEPIC: E{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\n{title}\n\nSpecification: {specTitle}\nProgress: {done}/{total} ({percentage}%)\nStatus: {status}\n\nDESCRIPTION\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{description}\n\nTICKETS\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} \u2502 done\n\u2192 E{n}-T{m} \u2502 {title} \u2502 in_progress\n\u25CB E{n}-T{m} \u2502 {title} \u2502 ready\n\u2297 E{n}-T{m} \u2502 {title} \u2502 blocked\n\nPATTERNS\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{epicPatterns}\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 to continue implementation\n```\n\n## Notes\n- Shows all tickets in epic\n- Displays epic-level patterns\n- Use /sf-ticket-implementation <id> to work on specific ticket\n";
|
|
7
|
+
//# sourceMappingURL=sf-epic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-epic.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-epic.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,eAAe,wnGA8D3B,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Epic Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for viewing epic details and progress.
|
|
5
|
+
*/
|
|
6
|
+
export const SF_EPIC_CONTENT = `# View Epic (SpecForge)
|
|
7
|
+
|
|
8
|
+
View detailed information about a specific epic and its progress.
|
|
9
|
+
|
|
10
|
+
## Arguments
|
|
11
|
+
- \`$ARGUMENTS\` - Required: Epic ID (e.g., E1)
|
|
12
|
+
|
|
13
|
+
## Task
|
|
14
|
+
|
|
15
|
+
### 1. Get Epic Details
|
|
16
|
+
|
|
17
|
+
**MCP Calls:**
|
|
18
|
+
\`\`\`typescript
|
|
19
|
+
get_epic($ARGUMENTS)
|
|
20
|
+
get_specification(epic.specificationId)
|
|
21
|
+
list_tickets({ epicId: $ARGUMENTS })
|
|
22
|
+
\`\`\`
|
|
23
|
+
|
|
24
|
+
### 2. Calculate Progress
|
|
25
|
+
|
|
26
|
+
**Logic:**
|
|
27
|
+
- Count tickets by status
|
|
28
|
+
- Calculate completion percentage
|
|
29
|
+
- Identify blockers
|
|
30
|
+
- Track velocity
|
|
31
|
+
|
|
32
|
+
### 3. Display Epic Overview
|
|
33
|
+
|
|
34
|
+
**Output:**
|
|
35
|
+
\`\`\`
|
|
36
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
37
|
+
EPIC: E{n}
|
|
38
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
39
|
+
{title}
|
|
40
|
+
|
|
41
|
+
Specification: {specTitle}
|
|
42
|
+
Progress: {done}/{total} ({percentage}%)
|
|
43
|
+
Status: {status}
|
|
44
|
+
|
|
45
|
+
DESCRIPTION
|
|
46
|
+
─────────────────────────────────────────────────────────────────
|
|
47
|
+
{description}
|
|
48
|
+
|
|
49
|
+
TICKETS
|
|
50
|
+
─────────────────────────────────────────────────────────────────
|
|
51
|
+
✓ E{n}-T{m} │ {title} │ done
|
|
52
|
+
→ E{n}-T{m} │ {title} │ in_progress
|
|
53
|
+
○ E{n}-T{m} │ {title} │ ready
|
|
54
|
+
⊗ E{n}-T{m} │ {title} │ blocked
|
|
55
|
+
|
|
56
|
+
PATTERNS
|
|
57
|
+
─────────────────────────────────────────────────────────────────
|
|
58
|
+
{epicPatterns}
|
|
59
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
60
|
+
|
|
61
|
+
Next: Run /sf-next to continue implementation
|
|
62
|
+
\`\`\`
|
|
63
|
+
|
|
64
|
+
## Notes
|
|
65
|
+
- Shows all tickets in epic
|
|
66
|
+
- Displays epic-level patterns
|
|
67
|
+
- Use /sf-ticket-implementation <id> to work on specific ticket
|
|
68
|
+
`;
|
|
69
|
+
//# sourceMappingURL=sf-epic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-epic.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-epic.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8D9B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Help Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for displaying SpecForge command reference.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SF_HELP_CONTENT = "# SpecForge Command Reference\n\nQuick reference for all available SpecForge slash commands.\n\n## Task\n\nDisplay the command reference:\n\n```\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n SPECFORGE COMMAND REFERENCE\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nSETUP & CONTEXT\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/sf-init [spec-id] Initialize specification for work\n/sf-context [id] View or switch working context\n\nSTATUS & ANALYSIS\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/sf-status [spec-id] Implementation status overview\n/sf-validate [spec-id] System health check\n/sf-analyze-blockers Dependency bottleneck analysis\n/sf-epic <epic-id> Epic details and progress\n/sf-search <query> Search tickets\n\nIMPLEMENTATION\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/sf-next Start next ready ticket\n/sf-ticket-implementation Implement specific ticket\n/sf-run-autonomous [max] Batch implement tickets\n/sf-commit [ticket-id] Commit with ticket metadata\n\nPLANNING\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/sf-import-plan <file> Import plan to full spec\n/sf-create-spec <file> Create spec from plan\n/sf-create-epics <spec> Create epics for spec\n/sf-create-tickets <epic> Create tickets for epic\n\nMANAGEMENT\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/sf-review [spec-id] Accomplishment review\n/sf-reset [spec-id] Reset ticket statuses\n\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nTip: Use /sf-init first to set up your working context.\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n```\n\n## Notes\n- Commands use MCP tools from @specforge/mcp\n- Context is persisted across commands\n- Use /sf-status to see current progress\n";
|
|
7
|
+
//# sourceMappingURL=sf-help.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-help.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-help.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,eAAe,y4JAsD3B,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Help Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for displaying SpecForge command reference.
|
|
5
|
+
*/
|
|
6
|
+
export const SF_HELP_CONTENT = `# SpecForge Command Reference
|
|
7
|
+
|
|
8
|
+
Quick reference for all available SpecForge slash commands.
|
|
9
|
+
|
|
10
|
+
## Task
|
|
11
|
+
|
|
12
|
+
Display the command reference:
|
|
13
|
+
|
|
14
|
+
\`\`\`
|
|
15
|
+
═══════════════════════════════════════════════════════════════════
|
|
16
|
+
SPECFORGE COMMAND REFERENCE
|
|
17
|
+
═══════════════════════════════════════════════════════════════════
|
|
18
|
+
|
|
19
|
+
SETUP & CONTEXT
|
|
20
|
+
─────────────────────────────────────────────────────────────────
|
|
21
|
+
/sf-init [spec-id] Initialize specification for work
|
|
22
|
+
/sf-context [id] View or switch working context
|
|
23
|
+
|
|
24
|
+
STATUS & ANALYSIS
|
|
25
|
+
─────────────────────────────────────────────────────────────────
|
|
26
|
+
/sf-status [spec-id] Implementation status overview
|
|
27
|
+
/sf-validate [spec-id] System health check
|
|
28
|
+
/sf-analyze-blockers Dependency bottleneck analysis
|
|
29
|
+
/sf-epic <epic-id> Epic details and progress
|
|
30
|
+
/sf-search <query> Search tickets
|
|
31
|
+
|
|
32
|
+
IMPLEMENTATION
|
|
33
|
+
─────────────────────────────────────────────────────────────────
|
|
34
|
+
/sf-next Start next ready ticket
|
|
35
|
+
/sf-ticket-implementation Implement specific ticket
|
|
36
|
+
/sf-run-autonomous [max] Batch implement tickets
|
|
37
|
+
/sf-commit [ticket-id] Commit with ticket metadata
|
|
38
|
+
|
|
39
|
+
PLANNING
|
|
40
|
+
─────────────────────────────────────────────────────────────────
|
|
41
|
+
/sf-import-plan <file> Import plan to full spec
|
|
42
|
+
/sf-create-spec <file> Create spec from plan
|
|
43
|
+
/sf-create-epics <spec> Create epics for spec
|
|
44
|
+
/sf-create-tickets <epic> Create tickets for epic
|
|
45
|
+
|
|
46
|
+
MANAGEMENT
|
|
47
|
+
─────────────────────────────────────────────────────────────────
|
|
48
|
+
/sf-review [spec-id] Accomplishment review
|
|
49
|
+
/sf-reset [spec-id] Reset ticket statuses
|
|
50
|
+
|
|
51
|
+
═══════════════════════════════════════════════════════════════════
|
|
52
|
+
Tip: Use /sf-init first to set up your working context.
|
|
53
|
+
═══════════════════════════════════════════════════════════════════
|
|
54
|
+
\`\`\`
|
|
55
|
+
|
|
56
|
+
## Notes
|
|
57
|
+
- Commands use MCP tools from @specforge/mcp
|
|
58
|
+
- Context is persisted across commands
|
|
59
|
+
- Use /sf-status to see current progress
|
|
60
|
+
`;
|
|
61
|
+
//# sourceMappingURL=sf-help.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-help.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-help.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsD9B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Import-Plan Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for transforming a plan into a complete SpecForge specification.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SF_IMPORT_PLAN_CONTENT = "# Import Plan (SpecForge)\n\nTransform a plan document into a complete SpecForge specification with epics and tickets.\n\n## Arguments\n- `$ARGUMENTS` - Required: Path to plan markdown file\n\n## Task\n\n### 1. Read and Parse Plan\n\n**Logic:**\n- Read file at $ARGUMENTS\n- Extract specification metadata\n- Parse epic sections\n- Extract ticket information\n- Identify patterns and guardrails\n\n### 2. Create Specification\n\n**MCP Calls:**\n```typescript\ncreate_specification({\n title: extractedTitle,\n description: extractedDescription,\n metadata: extractedMetadata\n})\n```\n\n### 3. Create Epics and Tickets\n\n**MCP Calls:**\n```typescript\n// For each epic in plan\nfor (const epic of epics) {\n const epicId = await create_epic({\n specificationId,\n title: epic.title,\n description: epic.description\n })\n\n // For each ticket in epic\n for (const ticket of epic.tickets) {\n await create_ticket({\n epicId,\n title: ticket.title,\n description: ticket.description,\n dependencies: ticket.dependencies\n })\n }\n}\n```\n\n### 4. Display Import 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\nPLAN IMPORT 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\nSpecification: {title}\nID: {specificationId}\n\nCREATED\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\nEpics: {epicCount}\nTickets: {ticketCount}\n\nSTRUCTURE\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 {ticketCount} tickets\nE2 \u2502 {title} \u2502 {ticketCount} tickets\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-init {specificationId} to start work\n```\n\n## Notes\n- Automatically creates full ticket system from plan\n- Preserves epic and ticket structure\n- Use /sf-init to begin implementation\n";
|
|
7
|
+
//# sourceMappingURL=sf-import.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-import.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-import.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,sBAAsB,gtGAiFlC,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Import-Plan Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for transforming a plan into a complete SpecForge specification.
|
|
5
|
+
*/
|
|
6
|
+
export const SF_IMPORT_PLAN_CONTENT = `# Import Plan (SpecForge)
|
|
7
|
+
|
|
8
|
+
Transform a plan document into a complete SpecForge specification with epics and tickets.
|
|
9
|
+
|
|
10
|
+
## Arguments
|
|
11
|
+
- \`$ARGUMENTS\` - Required: Path to plan markdown file
|
|
12
|
+
|
|
13
|
+
## Task
|
|
14
|
+
|
|
15
|
+
### 1. Read and Parse Plan
|
|
16
|
+
|
|
17
|
+
**Logic:**
|
|
18
|
+
- Read file at $ARGUMENTS
|
|
19
|
+
- Extract specification metadata
|
|
20
|
+
- Parse epic sections
|
|
21
|
+
- Extract ticket information
|
|
22
|
+
- Identify patterns and guardrails
|
|
23
|
+
|
|
24
|
+
### 2. Create Specification
|
|
25
|
+
|
|
26
|
+
**MCP Calls:**
|
|
27
|
+
\`\`\`typescript
|
|
28
|
+
create_specification({
|
|
29
|
+
title: extractedTitle,
|
|
30
|
+
description: extractedDescription,
|
|
31
|
+
metadata: extractedMetadata
|
|
32
|
+
})
|
|
33
|
+
\`\`\`
|
|
34
|
+
|
|
35
|
+
### 3. Create Epics and Tickets
|
|
36
|
+
|
|
37
|
+
**MCP Calls:**
|
|
38
|
+
\`\`\`typescript
|
|
39
|
+
// For each epic in plan
|
|
40
|
+
for (const epic of epics) {
|
|
41
|
+
const epicId = await create_epic({
|
|
42
|
+
specificationId,
|
|
43
|
+
title: epic.title,
|
|
44
|
+
description: epic.description
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
// For each ticket in epic
|
|
48
|
+
for (const ticket of epic.tickets) {
|
|
49
|
+
await create_ticket({
|
|
50
|
+
epicId,
|
|
51
|
+
title: ticket.title,
|
|
52
|
+
description: ticket.description,
|
|
53
|
+
dependencies: ticket.dependencies
|
|
54
|
+
})
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
\`\`\`
|
|
58
|
+
|
|
59
|
+
### 4. Display Import Results
|
|
60
|
+
|
|
61
|
+
**Output:**
|
|
62
|
+
\`\`\`
|
|
63
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
64
|
+
PLAN IMPORT COMPLETE
|
|
65
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
66
|
+
Specification: {title}
|
|
67
|
+
ID: {specificationId}
|
|
68
|
+
|
|
69
|
+
CREATED
|
|
70
|
+
─────────────────────────────────────────────────────────────────
|
|
71
|
+
Epics: {epicCount}
|
|
72
|
+
Tickets: {ticketCount}
|
|
73
|
+
|
|
74
|
+
STRUCTURE
|
|
75
|
+
─────────────────────────────────────────────────────────────────
|
|
76
|
+
E1 │ {title} │ {ticketCount} tickets
|
|
77
|
+
E2 │ {title} │ {ticketCount} tickets
|
|
78
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
79
|
+
|
|
80
|
+
Next: Run /sf-init {specificationId} to start work
|
|
81
|
+
\`\`\`
|
|
82
|
+
|
|
83
|
+
## Notes
|
|
84
|
+
- Automatically creates full ticket system from plan
|
|
85
|
+
- Preserves epic and ticket structure
|
|
86
|
+
- Use /sf-init to begin implementation
|
|
87
|
+
`;
|
|
88
|
+
//# sourceMappingURL=sf-import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-import.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-import.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFrC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Init Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for initializing SpecForge specification for implementation work.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SF_INIT_CONTENT = "# Initialize Ticket System (SpecForge)\n\nInitialize a SpecForge specification for implementation work.\n\n## Arguments\n- `$ARGUMENTS` - Optional: Specification ID to initialize\n\n## Task\n\n### 1. Get or Set Working Context\n\n**MCP Calls:**\n```typescript\n// Get current context\nget_working_context()\n\n// If $ARGUMENTS provided, set specification\nset_working_context({\n specificationId: \"$ARGUMENTS\"\n})\n```\n\n### 2. Load Specification Details\n\n**MCP Calls:**\n```typescript\nget_specification(specificationId)\nlist_epics({ specificationId })\nlist_tickets({ specificationId })\n```\n\n### 3. Display Initialization 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\nSPECFORGE INITIALIZED\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}\nStatus: {status}\nEpics: {epicCount}\nTickets: {ticketCount}\n\nProgress: {done}/{total} ({percentage}%)\nReady: {readyCount} tickets available\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 to start the next ready ticket\n```\n\n## Notes\n- Context persists across commands\n- Use /sf-status for detailed view\n- Use /sf-next to start implementation\n";
|
|
7
|
+
//# sourceMappingURL=sf-init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-init.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,eAAe,87DAsD3B,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Init Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for initializing SpecForge specification for implementation work.
|
|
5
|
+
*/
|
|
6
|
+
export const SF_INIT_CONTENT = `# Initialize Ticket System (SpecForge)
|
|
7
|
+
|
|
8
|
+
Initialize a SpecForge specification for implementation work.
|
|
9
|
+
|
|
10
|
+
## Arguments
|
|
11
|
+
- \`$ARGUMENTS\` - Optional: Specification ID to initialize
|
|
12
|
+
|
|
13
|
+
## Task
|
|
14
|
+
|
|
15
|
+
### 1. Get or Set Working Context
|
|
16
|
+
|
|
17
|
+
**MCP Calls:**
|
|
18
|
+
\`\`\`typescript
|
|
19
|
+
// Get current context
|
|
20
|
+
get_working_context()
|
|
21
|
+
|
|
22
|
+
// If $ARGUMENTS provided, set specification
|
|
23
|
+
set_working_context({
|
|
24
|
+
specificationId: "$ARGUMENTS"
|
|
25
|
+
})
|
|
26
|
+
\`\`\`
|
|
27
|
+
|
|
28
|
+
### 2. Load Specification Details
|
|
29
|
+
|
|
30
|
+
**MCP Calls:**
|
|
31
|
+
\`\`\`typescript
|
|
32
|
+
get_specification(specificationId)
|
|
33
|
+
list_epics({ specificationId })
|
|
34
|
+
list_tickets({ specificationId })
|
|
35
|
+
\`\`\`
|
|
36
|
+
|
|
37
|
+
### 3. Display Initialization Summary
|
|
38
|
+
|
|
39
|
+
**Output:**
|
|
40
|
+
\`\`\`
|
|
41
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
42
|
+
SPECFORGE INITIALIZED
|
|
43
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
44
|
+
Specification: {title}
|
|
45
|
+
Status: {status}
|
|
46
|
+
Epics: {epicCount}
|
|
47
|
+
Tickets: {ticketCount}
|
|
48
|
+
|
|
49
|
+
Progress: {done}/{total} ({percentage}%)
|
|
50
|
+
Ready: {readyCount} tickets available
|
|
51
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
52
|
+
|
|
53
|
+
Next: Run /sf-next to start the next ready ticket
|
|
54
|
+
\`\`\`
|
|
55
|
+
|
|
56
|
+
## Notes
|
|
57
|
+
- Context persists across commands
|
|
58
|
+
- Use /sf-status for detailed view
|
|
59
|
+
- Use /sf-next to start implementation
|
|
60
|
+
`;
|
|
61
|
+
//# sourceMappingURL=sf-init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-init.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsD9B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Next Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for quick starting the next ready ticket.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SF_NEXT_CONTENT = "# Quick Start Next Ticket (SpecForge)\n\nAutomatically find and start the next ready ticket for implementation.\n\n## Task\n\n### 1. Find Next Ready Ticket\n\n**MCP Calls:**\n```typescript\nget_working_context()\nlist_tickets({\n specificationId,\n status: 'ready',\n sortBy: 'priority'\n})\n```\n\n### 2. Set Ticket Context\n\n**MCP Calls:**\n```typescript\nset_working_context({\n ticketId: nextTicket.id\n})\nupdate_ticket({\n ticketId: nextTicket.id,\n status: 'in_progress'\n})\n```\n\n### 3. Display Ticket Details\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\nSTARTING: 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\nTitle: {title}\nPriority: {priority}\nEpic: E{n} - {epicTitle}\nDependencies: {depCount} completed\n\nDESCRIPTION\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{description}\n\nACCEPTANCE CRITERIA\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\u25A1 {criterion1}\n\u25A1 {criterion2}\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\nReady to implement!\n```\n\n## Notes\n- Automatically selects highest priority ready ticket\n- Updates ticket status to in_progress\n- Sets working context to selected ticket\n";
|
|
7
|
+
//# sourceMappingURL=sf-next.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-next.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-next.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,eAAe,gmFA4D3B,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Next Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for quick starting the next ready ticket.
|
|
5
|
+
*/
|
|
6
|
+
export const SF_NEXT_CONTENT = `# Quick Start Next Ticket (SpecForge)
|
|
7
|
+
|
|
8
|
+
Automatically find and start the next ready ticket for implementation.
|
|
9
|
+
|
|
10
|
+
## Task
|
|
11
|
+
|
|
12
|
+
### 1. Find Next Ready Ticket
|
|
13
|
+
|
|
14
|
+
**MCP Calls:**
|
|
15
|
+
\`\`\`typescript
|
|
16
|
+
get_working_context()
|
|
17
|
+
list_tickets({
|
|
18
|
+
specificationId,
|
|
19
|
+
status: 'ready',
|
|
20
|
+
sortBy: 'priority'
|
|
21
|
+
})
|
|
22
|
+
\`\`\`
|
|
23
|
+
|
|
24
|
+
### 2. Set Ticket Context
|
|
25
|
+
|
|
26
|
+
**MCP Calls:**
|
|
27
|
+
\`\`\`typescript
|
|
28
|
+
set_working_context({
|
|
29
|
+
ticketId: nextTicket.id
|
|
30
|
+
})
|
|
31
|
+
update_ticket({
|
|
32
|
+
ticketId: nextTicket.id,
|
|
33
|
+
status: 'in_progress'
|
|
34
|
+
})
|
|
35
|
+
\`\`\`
|
|
36
|
+
|
|
37
|
+
### 3. Display Ticket Details
|
|
38
|
+
|
|
39
|
+
**Output:**
|
|
40
|
+
\`\`\`
|
|
41
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
42
|
+
STARTING: E{n}-T{m}
|
|
43
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
44
|
+
Title: {title}
|
|
45
|
+
Priority: {priority}
|
|
46
|
+
Epic: E{n} - {epicTitle}
|
|
47
|
+
Dependencies: {depCount} completed
|
|
48
|
+
|
|
49
|
+
DESCRIPTION
|
|
50
|
+
─────────────────────────────────────────────────────────────────
|
|
51
|
+
{description}
|
|
52
|
+
|
|
53
|
+
ACCEPTANCE CRITERIA
|
|
54
|
+
─────────────────────────────────────────────────────────────────
|
|
55
|
+
□ {criterion1}
|
|
56
|
+
□ {criterion2}
|
|
57
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
58
|
+
|
|
59
|
+
Ready to implement!
|
|
60
|
+
\`\`\`
|
|
61
|
+
|
|
62
|
+
## Notes
|
|
63
|
+
- Automatically selects highest priority ready ticket
|
|
64
|
+
- Updates ticket status to in_progress
|
|
65
|
+
- Sets working context to selected ticket
|
|
66
|
+
`;
|
|
67
|
+
//# sourceMappingURL=sf-next.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-next.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-next.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4D9B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SF-Reset Command Template
|
|
3
|
+
*
|
|
4
|
+
* Template for resetting ticket statuses with dependency awareness.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SF_RESET_CONTENT = "# Reset Ticket Statuses (SpecForge)\n\nReset ticket statuses to ready state with dependency awareness.\n\n## Arguments\n- `$ARGUMENTS` - Optional: Specification ID or ticket ID to reset\n\n## Task\n\n### 1. Get Reset Scope\n\n**MCP Calls:**\n```typescript\nget_working_context()\n\nif ($ARGUMENTS.match(/Ed+-Td+/)) {\n // Single ticket reset\n get_ticket($ARGUMENTS)\n} else {\n // Full specification reset\n if ($ARGUMENTS) {\n set_working_context({ specificationId: \"$ARGUMENTS\" })\n }\n list_tickets({ specificationId })\n}\n```\n\n### 2. Reset Tickets\n\n**MCP Calls:**\n```typescript\n// For each ticket to reset\nfor (const ticket of tickets) {\n // Check dependencies\n const allDepsCompleted = ticket.dependencies.every(\n dep => getTicketStatus(dep) === 'done'\n );\n\n // Update status\n update_ticket({\n ticketId: ticket.id,\n status: allDepsCompleted ? 'ready' : 'blocked'\n })\n}\n```\n\n### 3. Display Reset 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\nTICKET RESET 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\nScope: {scope}\n\nRESET SUMMARY\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\nReady: {readyCount} tickets\nBlocked: {blockedCount} tickets\nDone: {doneCount} tickets (unchanged)\n\nRESET 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 {oldStatus} \u2192 {newStatus}\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- Respects dependency constraints\n- Can reset single ticket or entire specification\n- Completed tickets remain unchanged by default\n";
|
|
7
|
+
//# sourceMappingURL=sf-reset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-reset.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-reset.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,gBAAgB,6+FAuE5B,CAAC"}
|