specdrive-cli 0.1.10 → 0.1.12

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.
Files changed (74) hide show
  1. package/README.md +955 -697
  2. package/agents/00-onboarding.md +261 -0
  3. package/agents/01-constitution.md +214 -201
  4. package/agents/02-specification.md +249 -226
  5. package/agents/03-uiux.md +156 -144
  6. package/agents/04-cascade.md +151 -122
  7. package/agents/05-discover-skills.md +136 -136
  8. package/agents/06-documentation.md +158 -145
  9. package/agents/07-implementation.md +201 -169
  10. package/agents/08-performance.md +179 -165
  11. package/agents/09-review-complete.md +239 -168
  12. package/agents/10-security.md +180 -167
  13. package/agents/11-test.md +195 -0
  14. package/commands/gates.js +73 -73
  15. package/commands/manifest.json +113 -95
  16. package/commands/permissions.json +39 -0
  17. package/commands/router.js +151 -127
  18. package/commands/tools.json +19 -19
  19. package/dashboard/app.js +394 -0
  20. package/dashboard/index.html +74 -0
  21. package/dashboard/server.js +166 -0
  22. package/dashboard/style.css +157 -0
  23. package/mcp/mcp.json +31 -0
  24. package/mcp/server.js +108 -0
  25. package/package.json +35 -32
  26. package/schemas/config.schema.json +20 -0
  27. package/schemas/workflow-state.schema.json +149 -38
  28. package/scripts/anti-redundancy.js +176 -176
  29. package/scripts/audit-log.js +46 -46
  30. package/scripts/check-permission.js +87 -0
  31. package/scripts/diff-spec.js +50 -50
  32. package/scripts/diff-version.js +96 -0
  33. package/scripts/generate-adapters.js +80 -80
  34. package/scripts/generate-from-template.js +97 -97
  35. package/scripts/generate-openapi.js +75 -75
  36. package/scripts/github-team-sync.js +80 -80
  37. package/scripts/install-hooks.js +20 -20
  38. package/scripts/load-plugins.js +65 -65
  39. package/scripts/migrate-openspec.js +318 -0
  40. package/scripts/migrate-speckit.js +322 -0
  41. package/scripts/migrate.js +12 -62
  42. package/scripts/onboard.js +312 -0
  43. package/scripts/pre-commit.js +56 -20
  44. package/scripts/team.js +113 -113
  45. package/scripts/test-adapters.js +118 -118
  46. package/scripts/test-create.js +13 -13
  47. package/scripts/test-end-to-end.js +137 -137
  48. package/scripts/test-router.js +110 -110
  49. package/scripts/test-state-transitions.js +146 -146
  50. package/scripts/test-validator.js +152 -152
  51. package/scripts/validate-config.js +36 -0
  52. package/scripts/validate-governance.js +150 -130
  53. package/scripts/verify.js +525 -0
  54. package/scripts/version-new.js +202 -0
  55. package/src/index.js +1010 -807
  56. package/templates/expo/plan.json +12 -0
  57. package/templates/expo/spec.json +12 -0
  58. package/templates/expo/tasks.json +5 -0
  59. package/templates/fastapi/plan.json +12 -0
  60. package/templates/fastapi/spec.json +12 -0
  61. package/templates/fastapi/tasks.json +5 -0
  62. package/templates/generic/plan.json +12 -0
  63. package/templates/generic/spec.json +11 -0
  64. package/templates/generic/tasks.json +5 -0
  65. package/templates/nextjs/plan.json +23 -0
  66. package/templates/nextjs/spec.json +12 -0
  67. package/templates/nextjs/tasks.json +5 -0
  68. package/templates/react-node/plan.json +15 -0
  69. package/templates/react-node/spec.json +12 -0
  70. package/templates/react-node/tasks.json +5 -0
  71. package/templates/registry.json +30 -0
  72. package/templates/turborepo/plan.json +12 -0
  73. package/templates/turborepo/spec.json +12 -0
  74. package/templates/turborepo/tasks.json +5 -0
@@ -0,0 +1,12 @@
1
+ {
2
+ "feature": "{{featureName}}",
3
+ "version": 1,
4
+ "architecture": {
5
+ "approach": "Expo React Native mobile app",
6
+ "components": []
7
+ },
8
+ "dataModel": {
9
+ "entities": [],
10
+ "flowDescription": "Mobile app with local state"
11
+ }
12
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "feature": "{{featureName}}",
3
+ "title": "{{title}}",
4
+ "version": 1,
5
+ "overview": {
6
+ "problemStatement": "{{problemStatement}}",
7
+ "proposedSolution": "{{proposedSolution}}",
8
+ "targetAudience": "{{targetAudience}}"
9
+ },
10
+ "userStories": [],
11
+ "functionalRequirements": []
12
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "feature": "{{featureName}}",
3
+ "version": 1,
4
+ "phases": []
5
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "feature": "{{featureName}}",
3
+ "version": 1,
4
+ "architecture": {
5
+ "approach": "Python FastAPI backend",
6
+ "components": []
7
+ },
8
+ "dataModel": {
9
+ "entities": [],
10
+ "flowDescription": "REST API with async endpoints"
11
+ }
12
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "feature": "{{featureName}}",
3
+ "title": "{{title}}",
4
+ "version": 1,
5
+ "overview": {
6
+ "problemStatement": "{{problemStatement}}",
7
+ "proposedSolution": "{{proposedSolution}}",
8
+ "targetAudience": "{{targetAudience}}"
9
+ },
10
+ "userStories": [],
11
+ "functionalRequirements": []
12
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "feature": "{{featureName}}",
3
+ "version": 1,
4
+ "phases": []
5
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "feature": "{{featureName}}",
3
+ "version": 1,
4
+ "architecture": {
5
+ "approach": "{{approach}}",
6
+ "components": []
7
+ },
8
+ "dataModel": {
9
+ "entities": [],
10
+ "flowDescription": "{{flowDescription}}"
11
+ }
12
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "feature": "{{featureName}}",
3
+ "version": 1,
4
+ "overview": {
5
+ "problemStatement": "{{problemStatement}}",
6
+ "proposedSolution": "{{proposedSolution}}",
7
+ "targetAudience": "{{targetAudience}}"
8
+ },
9
+ "userStories": [],
10
+ "functionalRequirements": []
11
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "feature": "{{featureName}}",
3
+ "version": 1,
4
+ "phases": []
5
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "feature": "{{featureName}}",
3
+ "version": 1,
4
+ "architecture": {
5
+ "approach": "Next.js full-stack application",
6
+ "components": []
7
+ },
8
+ "dataModel": {
9
+ "entities": [],
10
+ "flowDescription": "Server components + API routes"
11
+ }
12
+ }{
13
+ "feature": "{{featureName}}",
14
+ "version": 1,
15
+ "architecture": {
16
+ "approach": "Next.js full-stack application",
17
+ "components": []
18
+ },
19
+ "dataModel": {
20
+ "entities": [],
21
+ "flowDescription": "Server components + API routes"
22
+ }
23
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "feature": "{{featureName}}",
3
+ "title": "{{title}}",
4
+ "version": 1,
5
+ "overview": {
6
+ "problemStatement": "{{problemStatement}}",
7
+ "proposedSolution": "{{proposedSolution}}",
8
+ "targetAudience": "{{targetAudience}}"
9
+ },
10
+ "userStories": [],
11
+ "functionalRequirements": []
12
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "feature": "{{featureName}}",
3
+ "version": 1,
4
+ "phases": []
5
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "feature": "{{featureName}}",
3
+ "version": 1,
4
+ "architecture": {
5
+ "approach": "React frontend with Node.js API",
6
+ "components": [
7
+ { "name": "frontend", "action": "create" },
8
+ { "name": "backend", "action": "create" }
9
+ ]
10
+ },
11
+ "dataModel": {
12
+ "entities": [],
13
+ "flowDescription": "React client communicates with Node API"
14
+ }
15
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "feature": "{{featureName}}",
3
+ "title": "{{title}}",
4
+ "version": 1,
5
+ "overview": {
6
+ "problemStatement": "{{problemStatement}}",
7
+ "proposedSolution": "{{proposedSolution}}",
8
+ "targetAudience": "{{targetAudience}}"
9
+ },
10
+ "userStories": [],
11
+ "functionalRequirements": []
12
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "feature": "{{featureName}}",
3
+ "version": 1,
4
+ "phases": []
5
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "version": "1.0.0",
3
+ "templates": [
4
+ {
5
+ "name": "generic",
6
+ "description": "Generic project template",
7
+ "path": "generic"
8
+ },
9
+ {
10
+ "name": "react-node",
11
+ "description": "React frontend with Node.js backend",
12
+ "path": "react-node"
13
+ },
14
+ {
15
+ "name": "nextjs",
16
+ "description": "Next.js full-stack application",
17
+ "path": "nextjs"
18
+ },
19
+ {
20
+ "name": "expo",
21
+ "description": "Expo / React Native mobile app",
22
+ "path": "expo"
23
+ },
24
+ {
25
+ "name": "fastapi",
26
+ "description": "Python FastAPI backend",
27
+ "path": "fastapi"
28
+ }
29
+ ]
30
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "feature": "{{featureName}}",
3
+ "version": 1,
4
+ "architecture": {
5
+ "approach": "Turborepo monorepo with configurable apps and shared packages",
6
+ "components": []
7
+ },
8
+ "dataModel": {
9
+ "entities": [],
10
+ "flowDescription": "Shared packages consumed by one or more apps"
11
+ }
12
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "feature": "{{featureName}}",
3
+ "title": "{{title}}",
4
+ "version": 1,
5
+ "overview": {
6
+ "problemStatement": "{{problemStatement}}",
7
+ "proposedSolution": "{{proposedSolution}}",
8
+ "targetAudience": "{{targetAudience}}"
9
+ },
10
+ "userStories": [],
11
+ "functionalRequirements": []
12
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "feature": "{{featureName}}",
3
+ "version": 1,
4
+ "phases": []
5
+ }