amazingteam 3.0.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.
Files changed (164) hide show
  1. package/.ai-team/agents/architect.md +144 -0
  2. package/.ai-team/agents/ci-analyst.md +188 -0
  3. package/.ai-team/agents/developer.md +176 -0
  4. package/.ai-team/agents/planner.md +355 -0
  5. package/.ai-team/agents/qa.md +189 -0
  6. package/.ai-team/agents/reviewer.md +211 -0
  7. package/.ai-team/agents/triage.md +146 -0
  8. package/.ai-team/commands/ci-analyze.md +116 -0
  9. package/.ai-team/commands/design.md +100 -0
  10. package/.ai-team/commands/implement.md +108 -0
  11. package/.ai-team/commands/release-check.md +142 -0
  12. package/.ai-team/commands/review.md +142 -0
  13. package/.ai-team/commands/test.md +115 -0
  14. package/.ai-team/commands/triage.md +138 -0
  15. package/.ai-team/memory/architect/architecture_notes.md +67 -0
  16. package/.ai-team/memory/architect/design_rationale.md +113 -0
  17. package/.ai-team/memory/architect/module_map.md +84 -0
  18. package/.ai-team/memory/ci-analyst/failure_patterns.md +102 -0
  19. package/.ai-team/memory/ci-analyst/runbook_references.md +87 -0
  20. package/.ai-team/memory/developer/bug_investigation.md +102 -0
  21. package/.ai-team/memory/developer/build_issues.md +115 -0
  22. package/.ai-team/memory/developer/implementation_notes.md +83 -0
  23. package/.ai-team/memory/failures/failure_library.md +103 -0
  24. package/.ai-team/memory/planner/decomposition_notes.md +82 -0
  25. package/.ai-team/memory/planner/flow_rules.md +86 -0
  26. package/.ai-team/memory/planner/github_issue_patterns.md +229 -0
  27. package/.ai-team/memory/qa/regression_cases.md +101 -0
  28. package/.ai-team/memory/qa/test_strategy.md +138 -0
  29. package/.ai-team/memory/qa/validation_notes.md +110 -0
  30. package/.ai-team/memory/reviewer/quality_rules.md +105 -0
  31. package/.ai-team/memory/reviewer/recurring_risks.md +109 -0
  32. package/.ai-team/memory/reviewer/review_notes.md +124 -0
  33. package/.ai-team/memory/triage/classification_heuristics.md +82 -0
  34. package/.ai-team/memory/triage/debug_notes.md +87 -0
  35. package/.ai-team/opencode.template.jsonc +216 -0
  36. package/.ai-team/skills/bugfix-playbook/skill.md +174 -0
  37. package/.ai-team/skills/ci-failure-analysis/skill.md +176 -0
  38. package/.ai-team/skills/issue-triage/skill.md +163 -0
  39. package/.ai-team/skills/regression-checklist/skill.md +176 -0
  40. package/.ai-team/skills/release-readiness-check/skill.md +216 -0
  41. package/.ai-team/skills/repo-architecture-reader/skill.md +139 -0
  42. package/.ai-team/skills/safe-refactor-checklist/skill.md +215 -0
  43. package/.ai-team/skills/task-breakdown-and-dispatch/skill.md +151 -0
  44. package/.ai-team/skills/test-first-feature-dev/skill.md +205 -0
  45. package/.ai-team/workflows/ci.yml +81 -0
  46. package/.ai-team/workflows/nightly-ai-maintenance.yml +129 -0
  47. package/.ai-team/workflows/opencode.yml +33 -0
  48. package/.ai-team/workflows/pr-check.yml +41 -0
  49. package/.foundation/foundation.lock +38 -0
  50. package/.foundation/local-overrides.md +97 -0
  51. package/.foundation/upgrade-history.md +38 -0
  52. package/.opencode/agents/architect.md +38 -0
  53. package/.opencode/agents/ci-analyst.md +38 -0
  54. package/.opencode/agents/developer.md +43 -0
  55. package/.opencode/agents/planner.md +47 -0
  56. package/.opencode/agents/qa.md +34 -0
  57. package/.opencode/agents/reviewer.md +38 -0
  58. package/.opencode/agents/triage.md +37 -0
  59. package/.opencode/commands/auto.md +264 -0
  60. package/.opencode/commands/breakdown-issue.md +94 -0
  61. package/.opencode/commands/ci-analyze.md +15 -0
  62. package/.opencode/commands/close-parent-task.md +122 -0
  63. package/.opencode/commands/design.md +15 -0
  64. package/.opencode/commands/dispatch-next.md +102 -0
  65. package/.opencode/commands/implement.md +16 -0
  66. package/.opencode/commands/release-check.md +16 -0
  67. package/.opencode/commands/resume.md +88 -0
  68. package/.opencode/commands/review.md +15 -0
  69. package/.opencode/commands/show-blockers.md +97 -0
  70. package/.opencode/commands/summarize-parent.md +121 -0
  71. package/.opencode/commands/test.md +15 -0
  72. package/.opencode/commands/triage.md +109 -0
  73. package/.opencode/skills/bugfix-playbook/SKILL.md +81 -0
  74. package/.opencode/skills/ci-failure-analysis/SKILL.md +94 -0
  75. package/.opencode/skills/issue-triage/SKILL.md +80 -0
  76. package/.opencode/skills/regression-checklist/SKILL.md +81 -0
  77. package/.opencode/skills/release-readiness-check/SKILL.md +81 -0
  78. package/.opencode/skills/repo-architecture-reader/SKILL.md +65 -0
  79. package/.opencode/skills/safe-refactor-checklist/SKILL.md +76 -0
  80. package/.opencode/skills/task-breakdown-and-dispatch/SKILL.md +255 -0
  81. package/.opencode/skills/test-first-feature-dev/SKILL.md +78 -0
  82. package/AGENTS.md +879 -0
  83. package/CHANGELOG.md +261 -0
  84. package/LICENSE +21 -0
  85. package/README.md +1215 -0
  86. package/VERSION +1 -0
  87. package/action/__tests__/downloader.test.js +251 -0
  88. package/action/__tests__/merger.test.js +156 -0
  89. package/action/__tests__/path-resolver.test.js +199 -0
  90. package/action/__tests__/validator.test.js +310 -0
  91. package/action/action.yml +61 -0
  92. package/action/index.js +223 -0
  93. package/action/lib/downloader.js +344 -0
  94. package/action/lib/merger.js +170 -0
  95. package/action/lib/path-resolver.js +176 -0
  96. package/action/lib/setup.js +286 -0
  97. package/action/lib/validator.js +324 -0
  98. package/cli/__tests__/cli.test.js +270 -0
  99. package/cli/amazingteam.cjs +225 -0
  100. package/cli/commands/check-update.cjs +159 -0
  101. package/cli/commands/init.cjs +412 -0
  102. package/cli/commands/local.cjs +264 -0
  103. package/cli/commands/migrate.cjs +316 -0
  104. package/cli/commands/status.cjs +241 -0
  105. package/cli/commands/upgrade.cjs +213 -0
  106. package/cli/commands/validate.cjs +259 -0
  107. package/cli/commands/version.cjs +59 -0
  108. package/cli/sync.cjs +237 -0
  109. package/dist/index.js +35 -0
  110. package/docs/architecture/overview.md +138 -0
  111. package/docs/blocker_resolution_design.md +372 -0
  112. package/docs/bootstrap-model.md +356 -0
  113. package/docs/config-reference.md +458 -0
  114. package/docs/how-to-use.md +178 -0
  115. package/docs/migration-to-v3.md +355 -0
  116. package/docs/overlay-guide.md +156 -0
  117. package/docs/patterns/README.md +67 -0
  118. package/docs/quick-start-v3.md +330 -0
  119. package/docs/releases/README.md +64 -0
  120. package/docs/runbooks/ci/README.md +62 -0
  121. package/docs/runbooks/ci/build-debug.md +120 -0
  122. package/docs/runbooks/ci/flaky-tests.md +127 -0
  123. package/docs/runbooks/getting-started.md +81 -0
  124. package/docs/upgrade-policy.md +188 -0
  125. package/docs/versioning.md +199 -0
  126. package/overlays/README.md +30 -0
  127. package/overlays/ai-agent-product/.ai-team/skills/llm-integration/skill.md +99 -0
  128. package/overlays/ai-agent-product/docs/ai-agent-architecture.md +68 -0
  129. package/overlays/ai-agent-product/overlay.yaml +26 -0
  130. package/overlays/cpp-qt-desktop/.ai-team/skills/qt-signals-slots/skill.md +60 -0
  131. package/overlays/cpp-qt-desktop/docs/qt-conventions.md +64 -0
  132. package/overlays/cpp-qt-desktop/overlay.yaml +22 -0
  133. package/overlays/python-backend/.ai-team/skills/python-testing/skill.md +90 -0
  134. package/overlays/python-backend/docs/python-style.md +78 -0
  135. package/overlays/python-backend/overlay.yaml +22 -0
  136. package/overlays/web-fullstack/.ai-team/skills/frontend-testing/skill.md +70 -0
  137. package/overlays/web-fullstack/docs/frontend-conventions.md +68 -0
  138. package/overlays/web-fullstack/overlay.yaml +26 -0
  139. package/package.json +84 -0
  140. package/presets/default.yaml +161 -0
  141. package/presets/go.yaml +43 -0
  142. package/presets/python.yaml +43 -0
  143. package/presets/typescript.yaml +40 -0
  144. package/schemas/config.schema.json +239 -0
  145. package/scripts/diff_foundation_vs_project.sh +134 -0
  146. package/scripts/generate_docs.sh +200 -0
  147. package/scripts/init_project.sh +455 -0
  148. package/scripts/plan_upgrade.sh +268 -0
  149. package/scripts/upgrade_foundation.sh +365 -0
  150. package/scripts/validate-foundation.cjs +278 -0
  151. package/scripts/validate_foundation.sh +192 -0
  152. package/scripts/validate_project_setup.sh +171 -0
  153. package/tasks/README.md +94 -0
  154. package/tasks/_template/analysis.md +76 -0
  155. package/tasks/_template/design.md +121 -0
  156. package/tasks/_template/implementation.md +121 -0
  157. package/tasks/_template/release.md +119 -0
  158. package/tasks/_template/review.md +131 -0
  159. package/tasks/_template/subtasks/task.yaml +24 -0
  160. package/tasks/_template/task.yaml +75 -0
  161. package/tasks/_template/validation.md +128 -0
  162. package/templates/amazingteam.yml +81 -0
  163. package/templates/gitignore +14 -0
  164. package/templates/opencode.jsonc +216 -0
@@ -0,0 +1,161 @@
1
+ # AmazingTeam Foundation - Default Configuration Preset
2
+ # This is the base configuration that all other presets extend from.
3
+
4
+ version: "1.0"
5
+
6
+ project:
7
+ name: ""
8
+ description: ""
9
+ language: "typescript"
10
+ framework: "node"
11
+
12
+ ai_team:
13
+ version: "3.0.0"
14
+
15
+ agents:
16
+ planner:
17
+ enabled: true
18
+ description: "Decomposes tasks and coordinates workflow progression"
19
+ skills: ["task-breakdown-and-dispatch"]
20
+ memory:
21
+ read: ["docs/", "AGENTS.md", ".amazingteam/memory/planner/", ".amazingteam/memory/architect/", ".amazingteam/memory/triage/", ".amazingteam/memory/failures/", "tasks/"]
22
+ write: [".amazingteam/memory/planner/", "tasks/{task_id}/task.yaml"]
23
+
24
+ architect:
25
+ enabled: true
26
+ description: "Analyzes requirements and designs solutions"
27
+ skills: ["repo-architecture-reader"]
28
+ memory:
29
+ read: ["docs/", "AGENTS.md", ".amazingteam/memory/planner/", ".amazingteam/memory/architect/", ".amazingteam/memory/developer/", ".amazingteam/memory/failures/", "tasks/"]
30
+ write: [".amazingteam/memory/architect/", "tasks/{task_id}/analysis.md", "tasks/{task_id}/design.md"]
31
+
32
+ developer:
33
+ enabled: true
34
+ description: "Implements features and fixes bugs"
35
+ skills: ["test-first-feature-dev", "bugfix-playbook"]
36
+ memory:
37
+ read: ["docs/", "AGENTS.md", ".amazingteam/memory/planner/", ".amazingteam/memory/architect/", ".amazingteam/memory/developer/", ".amazingteam/memory/failures/", "tasks/{task_id}/"]
38
+ write: [".amazingteam/memory/developer/", "tasks/{task_id}/implementation.md", "src/", "tests/"]
39
+
40
+ qa:
41
+ enabled: true
42
+ description: "Validates implementations and ensures quality"
43
+ skills: ["test-first-feature-dev", "regression-checklist"]
44
+ memory:
45
+ read: ["docs/", "AGENTS.md", ".amazingteam/memory/planner/", ".amazingteam/memory/architect/", ".amazingteam/memory/qa/", ".amazingteam/memory/failures/", "tasks/{task_id}/"]
46
+ write: [".amazingteam/memory/qa/", "tasks/{task_id}/validation.md", "tests/"]
47
+
48
+ reviewer:
49
+ enabled: true
50
+ description: "Reviews code for quality and correctness"
51
+ skills: ["safe-refactor-checklist", "regression-checklist", "release-readiness-check"]
52
+ memory:
53
+ read: ["docs/", "AGENTS.md", ".amazingteam/memory/", ".amazingteam/memory/failures/", "tasks/{task_id}/"]
54
+ write: [".amazingteam/memory/reviewer/", "tasks/{task_id}/review.md", "tasks/{task_id}/release.md"]
55
+
56
+ triage:
57
+ enabled: true
58
+ description: "Classifies issues and performs first-pass debug analysis"
59
+ skills: ["issue-triage", "bugfix-playbook"]
60
+ memory:
61
+ read: ["docs/", "AGENTS.md", ".amazingteam/memory/triage/", ".amazingteam/memory/failures/", "tasks/{task_id}/"]
62
+ write: [".amazingteam/memory/triage/", "tasks/{task_id}/"]
63
+
64
+ ci_analyst:
65
+ enabled: true
66
+ description: "Investigates CI failures and documents patterns"
67
+ skills: ["ci-failure-analysis", "bugfix-playbook"]
68
+ memory:
69
+ read: ["docs/", "AGENTS.md", ".amazingteam/memory/ci-analyst/", ".amazingteam/memory/failures/", "tasks/{task_id}/", "docs/runbooks/ci/"]
70
+ write: [".amazingteam/memory/ci-analyst/", ".amazingteam/memory/failures/", "tasks/{task_id}/"]
71
+
72
+ workflows:
73
+ feature:
74
+ sequence: ["planner", "architect", "developer", "qa", "reviewer"]
75
+ description: "Feature development workflow"
76
+
77
+ bugfix:
78
+ sequence: ["triage", "architect", "developer", "qa", "reviewer"]
79
+ description: "Bug fix workflow"
80
+
81
+ refactor:
82
+ sequence: ["architect", "developer", "reviewer"]
83
+ description: "Refactoring workflow"
84
+
85
+ ci_failure:
86
+ sequence: ["ci_analyst", "developer", "qa"]
87
+ description: "CI failure resolution workflow"
88
+
89
+ release:
90
+ sequence: ["reviewer"]
91
+ description: "Release validation workflow"
92
+
93
+ memory:
94
+ global:
95
+ locations: ["docs/", "AGENTS.md"]
96
+ write_requires_approval: true
97
+
98
+ role:
99
+ base_path: ".amazingteam/memory"
100
+ roles:
101
+ planner:
102
+ files: ["decomposition_notes.md", "flow_rules.md", "github_issue_patterns.md"]
103
+ architect:
104
+ files: ["architecture_notes.md", "module_map.md", "design_rationale.md"]
105
+ developer:
106
+ files: ["implementation_notes.md", "bug_investigation.md", "build_issues.md"]
107
+ qa:
108
+ files: ["test_strategy.md", "regression_cases.md", "validation_notes.md"]
109
+ reviewer:
110
+ files: ["review_notes.md", "quality_rules.md", "recurring_risks.md"]
111
+ triage:
112
+ files: ["classification_heuristics.md", "debug_notes.md"]
113
+ ci_analyst:
114
+ files: ["failure_patterns.md", "runbook_references.md"]
115
+
116
+ failures:
117
+ path: ".amazingteam/memory/failures"
118
+ files: ["failure_library.md"]
119
+ writable_by: ["ci_analyst"]
120
+
121
+ task:
122
+ base_path: "tasks"
123
+ naming: "issue-{issue_id}"
124
+ files: ["task.yaml", "analysis.md", "design.md", "implementation.md", "validation.md", "review.md", "release.md"]
125
+ auto_create: true
126
+ preserve_after_completion: true
127
+
128
+ rules:
129
+ max_changes_per_commit: 10
130
+ require_tests: true
131
+ require_review: true
132
+ auto_merge: false
133
+ memory_isolation: true
134
+ protected_paths:
135
+ - "docs/architecture/"
136
+ - "docs/decisions/"
137
+ human_approval_required:
138
+ - "architecture changes"
139
+ - "release operations"
140
+ - "breaking changes"
141
+
142
+ integrations:
143
+ github:
144
+ enabled: true
145
+ auto_label: true
146
+ auto_assign: true
147
+
148
+ ci:
149
+ enabled: true
150
+ require_passing: true
151
+ failure_analysis:
152
+ enabled: true
153
+ agent: "ci_analyst"
154
+
155
+ build:
156
+ command: ""
157
+ test: ""
158
+ lint: ""
159
+ typecheck: ""
160
+
161
+ overlay: null
@@ -0,0 +1,43 @@
1
+ # Go Configuration Preset
2
+ # For Go microservices and backend projects
3
+
4
+ $preset: "default"
5
+
6
+ project:
7
+ language: "go"
8
+ framework: "gin"
9
+
10
+ build:
11
+ command: "go build ./..."
12
+ test: "go test ./..."
13
+ lint: "golangci-lint run"
14
+ typecheck: ""
15
+
16
+ rules:
17
+ test_coverage_threshold: 70
18
+ max_function_lines: 40
19
+ commit_convention: "conventional"
20
+ go:
21
+ max_file_lines: 500
22
+ error_handling: "explicit"
23
+
24
+ agents:
25
+ developer:
26
+ skills: ["test-first-feature-dev", "bugfix-playbook"]
27
+ memory:
28
+ write: [".amazingteam/memory/developer/", "tasks/{task_id}/implementation.md", "pkg/", "internal/", "tests/"]
29
+
30
+ qa:
31
+ skills: ["test-first-feature-dev", "regression-checklist"]
32
+ memory:
33
+ write: [".amazingteam/memory/qa/", "tasks/{task_id}/validation.md", "tests/"]
34
+
35
+ integrations:
36
+ ci:
37
+ enabled: true
38
+ require_passing: true
39
+ commands:
40
+ install: "go mod download"
41
+ build: "go build ./..."
42
+ test: "go test -v -race -coverprofile=coverage.out ./..."
43
+ lint: "golangci-lint run"
@@ -0,0 +1,43 @@
1
+ # Python Configuration Preset
2
+ # For Python backend projects
3
+
4
+ $preset: "default"
5
+
6
+ project:
7
+ language: "python"
8
+ framework: "fastapi"
9
+
10
+ build:
11
+ command: "python -m build"
12
+ test: "pytest"
13
+ lint: "ruff check ."
14
+ typecheck: "mypy ."
15
+
16
+ rules:
17
+ test_coverage_threshold: 80
18
+ max_function_lines: 30
19
+ commit_convention: "conventional"
20
+ python:
21
+ max_line_length: 88
22
+ docstring_style: "google"
23
+
24
+ agents:
25
+ developer:
26
+ skills: ["test-first-feature-dev", "bugfix-playbook"]
27
+ memory:
28
+ write: [".amazingteam/memory/developer/", "tasks/{task_id}/implementation.md", "src/", "tests/"]
29
+
30
+ qa:
31
+ skills: ["test-first-feature-dev", "regression-checklist"]
32
+ memory:
33
+ write: [".amazingteam/memory/qa/", "tasks/{task_id}/validation.md", "tests/"]
34
+
35
+ integrations:
36
+ ci:
37
+ enabled: true
38
+ require_passing: true
39
+ commands:
40
+ install: "pip install -r requirements.txt"
41
+ build: "python -m build"
42
+ test: "pytest --cov"
43
+ lint: "ruff check . && mypy ."
@@ -0,0 +1,40 @@
1
+ # TypeScript/Node.js Configuration Preset
2
+ # Extends default.yaml with TypeScript-specific settings
3
+
4
+ $preset: "default"
5
+
6
+ project:
7
+ language: "typescript"
8
+ framework: "node"
9
+
10
+ build:
11
+ command: "npm run build"
12
+ test: "npm test"
13
+ lint: "npm run lint"
14
+ typecheck: "npm run typecheck"
15
+
16
+ rules:
17
+ test_coverage_threshold: 80
18
+ max_function_lines: 30
19
+ commit_convention: "conventional"
20
+
21
+ agents:
22
+ developer:
23
+ skills: ["test-first-feature-dev", "bugfix-playbook"]
24
+ memory:
25
+ write: [".amazingteam/memory/developer/", "tasks/{task_id}/implementation.md", "src/", "tests/"]
26
+
27
+ qa:
28
+ skills: ["test-first-feature-dev", "regression-checklist"]
29
+ memory:
30
+ write: [".amazingteam/memory/qa/", "tasks/{task_id}/validation.md", "tests/"]
31
+
32
+ integrations:
33
+ ci:
34
+ enabled: true
35
+ require_passing: true
36
+ commands:
37
+ install: "npm ci"
38
+ build: "npm run build"
39
+ test: "npm test"
40
+ lint: "npm run lint"
@@ -0,0 +1,239 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://amazingteam.dev/schemas/config.schema.json",
4
+ "title": "AmazingTeam Configuration",
5
+ "description": "Configuration schema for AmazingTeam Foundation v3",
6
+ "type": "object",
7
+ "required": ["version", "project"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "version": {
11
+ "type": "string",
12
+ "pattern": "^\\d+\\.\\d+\\.\\d+$",
13
+ "description": "Configuration file version (semver)"
14
+ },
15
+ "$preset": {
16
+ "type": "string",
17
+ "description": "Base preset to extend (default, typescript, python, go)"
18
+ },
19
+ "project": {
20
+ "type": "object",
21
+ "required": ["name", "language"],
22
+ "properties": {
23
+ "name": {
24
+ "type": "string",
25
+ "minLength": 1,
26
+ "description": "Project name"
27
+ },
28
+ "description": {
29
+ "type": "string",
30
+ "description": "Project description"
31
+ },
32
+ "language": {
33
+ "type": "string",
34
+ "enum": ["typescript", "javascript", "python", "go", "java", "cpp", "c", "rust", "ruby"],
35
+ "description": "Primary programming language"
36
+ },
37
+ "framework": {
38
+ "type": "string",
39
+ "description": "Primary framework (e.g., node, react, fastapi, gin)"
40
+ }
41
+ }
42
+ },
43
+ "ai_team": {
44
+ "type": "object",
45
+ "properties": {
46
+ "version": {
47
+ "type": "string",
48
+ "pattern": "^\\d+\\.\\d+\\.\\d+$",
49
+ "description": "AmazingTeam Foundation version"
50
+ }
51
+ }
52
+ },
53
+ "agents": {
54
+ "type": "object",
55
+ "description": "Agent configuration overrides",
56
+ "properties": {
57
+ "planner": { "$ref": "#/definitions/agent" },
58
+ "architect": { "$ref": "#/definitions/agent" },
59
+ "developer": { "$ref": "#/definitions/agent" },
60
+ "qa": { "$ref": "#/definitions/agent" },
61
+ "reviewer": { "$ref": "#/definitions/agent" },
62
+ "triage": { "$ref": "#/definitions/agent" },
63
+ "ci_analyst": { "$ref": "#/definitions/agent" }
64
+ }
65
+ },
66
+ "workflows": {
67
+ "type": "object",
68
+ "description": "Workflow definitions",
69
+ "additionalProperties": {
70
+ "type": "object",
71
+ "required": ["sequence"],
72
+ "properties": {
73
+ "sequence": {
74
+ "type": "array",
75
+ "items": {
76
+ "type": "string",
77
+ "enum": ["planner", "architect", "developer", "qa", "reviewer", "triage", "ci_analyst"]
78
+ }
79
+ },
80
+ "description": {
81
+ "type": "string"
82
+ }
83
+ }
84
+ }
85
+ },
86
+ "memory": {
87
+ "type": "object",
88
+ "properties": {
89
+ "global": {
90
+ "type": "object",
91
+ "properties": {
92
+ "locations": {
93
+ "type": "array",
94
+ "items": { "type": "string" }
95
+ },
96
+ "write_requires_approval": {
97
+ "type": "boolean"
98
+ }
99
+ }
100
+ },
101
+ "role": {
102
+ "type": "object",
103
+ "properties": {
104
+ "base_path": { "type": "string" }
105
+ }
106
+ },
107
+ "failures": {
108
+ "type": "object",
109
+ "properties": {
110
+ "path": { "type": "string" },
111
+ "writable_by": {
112
+ "type": "array",
113
+ "items": { "type": "string" }
114
+ }
115
+ }
116
+ },
117
+ "task": {
118
+ "type": "object",
119
+ "properties": {
120
+ "base_path": { "type": "string" },
121
+ "naming": { "type": "string" },
122
+ "auto_create": { "type": "boolean" },
123
+ "preserve_after_completion": { "type": "boolean" }
124
+ }
125
+ }
126
+ }
127
+ },
128
+ "rules": {
129
+ "type": "object",
130
+ "properties": {
131
+ "max_changes_per_commit": {
132
+ "type": "integer",
133
+ "minimum": 1
134
+ },
135
+ "require_tests": { "type": "boolean" },
136
+ "require_review": { "type": "boolean" },
137
+ "auto_merge": { "type": "boolean" },
138
+ "memory_isolation": { "type": "boolean" },
139
+ "test_coverage_threshold": {
140
+ "type": "integer",
141
+ "minimum": 0,
142
+ "maximum": 100
143
+ },
144
+ "max_function_lines": {
145
+ "type": "integer",
146
+ "minimum": 1
147
+ },
148
+ "commit_convention": {
149
+ "type": "string",
150
+ "enum": ["conventional", "none"]
151
+ },
152
+ "protected_paths": {
153
+ "type": "array",
154
+ "items": { "type": "string" }
155
+ },
156
+ "human_approval_required": {
157
+ "type": "array",
158
+ "items": { "type": "string" }
159
+ }
160
+ }
161
+ },
162
+ "build": {
163
+ "type": "object",
164
+ "description": "Build and test commands",
165
+ "properties": {
166
+ "command": { "type": "string" },
167
+ "test": { "type": "string" },
168
+ "lint": { "type": "string" },
169
+ "typecheck": { "type": "string" }
170
+ }
171
+ },
172
+ "integrations": {
173
+ "type": "object",
174
+ "properties": {
175
+ "github": {
176
+ "type": "object",
177
+ "properties": {
178
+ "enabled": { "type": "boolean" },
179
+ "auto_label": { "type": "boolean" },
180
+ "auto_assign": { "type": "boolean" }
181
+ }
182
+ },
183
+ "ci": {
184
+ "type": "object",
185
+ "properties": {
186
+ "enabled": { "type": "boolean" },
187
+ "require_passing": { "type": "boolean" },
188
+ "commands": {
189
+ "type": "object",
190
+ "properties": {
191
+ "install": { "type": "string" },
192
+ "build": { "type": "string" },
193
+ "test": { "type": "string" },
194
+ "lint": { "type": "string" }
195
+ }
196
+ }
197
+ }
198
+ }
199
+ }
200
+ },
201
+ "overlay": {
202
+ "type": ["string", "null"],
203
+ "description": "Technology overlay to apply (e.g., python-backend, web-fullstack)"
204
+ }
205
+ },
206
+ "definitions": {
207
+ "agent": {
208
+ "type": "object",
209
+ "properties": {
210
+ "enabled": {
211
+ "type": "boolean",
212
+ "description": "Enable or disable this agent"
213
+ },
214
+ "description": {
215
+ "type": "string",
216
+ "description": "Agent description override"
217
+ },
218
+ "skills": {
219
+ "type": "array",
220
+ "items": { "type": "string" },
221
+ "description": "Skills assigned to this agent"
222
+ },
223
+ "memory": {
224
+ "type": "object",
225
+ "properties": {
226
+ "read": {
227
+ "type": "array",
228
+ "items": { "type": "string" }
229
+ },
230
+ "write": {
231
+ "type": "array",
232
+ "items": { "type": "string" }
233
+ }
234
+ }
235
+ }
236
+ }
237
+ }
238
+ }
239
+ }
@@ -0,0 +1,134 @@
1
+ #!/bin/bash
2
+ # diff_foundation_vs_project.sh
3
+ # Compare foundation and project files
4
+
5
+ set -e
6
+
7
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
+ FOUNDATION_ROOT="$(dirname "$SCRIPT_DIR")"
9
+ PROJECT_ROOT="${1:-.}"
10
+
11
+ # Colors
12
+ RED='\033[0;31m'
13
+ GREEN='\033[0;32m'
14
+ YELLOW='\033[1;33m'
15
+ BLUE='\033[0;34m'
16
+ CYAN='\033[0;36m'
17
+ NC='\033[0m'
18
+
19
+ usage() {
20
+ echo "Usage: $0 [project-path] [file-pattern]"
21
+ echo ""
22
+ echo "Compare foundation and project files."
23
+ echo ""
24
+ echo "Options:"
25
+ echo " -h, --help Show this help message"
26
+ echo ""
27
+ echo "Examples:"
28
+ echo " $0 ./my-project"
29
+ echo " $0 ./my-project .ai-team/agents/planner.md"
30
+ }
31
+
32
+ # Resolve to absolute path
33
+ if [[ "${PROJECT_ROOT:0:1}" != "/" ]]; then
34
+ PROJECT_ROOT="$(pwd)/$PROJECT_ROOT"
35
+ fi
36
+
37
+ FILE_PATTERN="${2:-}"
38
+
39
+ echo -e "${CYAN}══════════════════════════════════════════════════${NC}"
40
+ echo -e "${CYAN} Foundation vs Project Diff${NC}"
41
+ echo -e "${CYAN}══════════════════════════════════════════════════${NC}"
42
+ echo ""
43
+
44
+ echo -e "${CYAN}Foundation:${NC} $FOUNDATION_ROOT"
45
+ echo -e "${CYAN}Project:${NC} $PROJECT_ROOT"
46
+ echo ""
47
+
48
+ # Classify a file
49
+ classify_file() {
50
+ local file="$1"
51
+
52
+ # Class C (Protected)
53
+ if [[ "$file" == docs/architecture/* ]] || [[ "$file" == docs/decisions/* ]]; then
54
+ echo -e "${RED}[Class C - Protected]${NC}"
55
+ return
56
+ fi
57
+
58
+ # Class B (Review required)
59
+ if [[ "$file" == .ai-team/agents/* ]] || \
60
+ [[ "$file" == .ai-team/skills/* ]] || \
61
+ [[ "$file" == .ai-team/commands/* ]] || \
62
+ [[ "$file" == .github/workflows/* ]] || \
63
+ [[ "$file" == AGENTS.md ]]; then
64
+ echo -e "${YELLOW}[Class B - Review Required]${NC}"
65
+ return
66
+ fi
67
+
68
+ # Class A (Auto-generatable)
69
+ echo -e "${GREEN}[Class A - Auto-generatable]${NC}"
70
+ }
71
+
72
+ # Compare a single file
73
+ compare_file() {
74
+ local relative_path="$1"
75
+ local foundation_file="$FOUNDATION_ROOT/$relative_path"
76
+ local project_file="$PROJECT_ROOT/$relative_path"
77
+
78
+ echo -e "${CYAN}────────────────────────────────────────────────${NC}"
79
+ echo -e "File: $relative_path"
80
+ classify_file "$relative_path"
81
+ echo ""
82
+
83
+ if [[ ! -f "$foundation_file" ]]; then
84
+ echo -e "${YELLOW}Not in foundation (project-specific)${NC}"
85
+ return
86
+ fi
87
+
88
+ if [[ ! -f "$project_file" ]]; then
89
+ echo -e "${YELLOW}Not in project (missing)${NC}"
90
+ return
91
+ fi
92
+
93
+ if diff -q "$foundation_file" "$project_file" > /dev/null 2>&1; then
94
+ echo -e "${GREEN}Identical${NC}"
95
+ else
96
+ echo -e "${YELLOW}Different:${NC}"
97
+ echo ""
98
+ diff -u "$foundation_file" "$project_file" | head -50
99
+ echo ""
100
+ fi
101
+ }
102
+
103
+ # Compare all files or specific file
104
+ if [[ -n "$FILE_PATTERN" ]]; then
105
+ compare_file "$FILE_PATTERN"
106
+ else
107
+ # Compare key files
108
+ FILES_TO_COMPARE=(
109
+ "AGENTS.md"
110
+ ".ai-team/agents/planner.md"
111
+ ".ai-team/agents/architect.md"
112
+ ".ai-team/agents/developer.md"
113
+ ".ai-team/agents/qa.md"
114
+ ".ai-team/agents/reviewer.md"
115
+ ".ai-team/agents/triage.md"
116
+ ".ai-team/agents/ci-analyst.md"
117
+ ".github/workflows/opencode.yml"
118
+ ".github/workflows/ci.yml"
119
+ )
120
+
121
+ for file in "${FILES_TO_COMPARE[@]}"; do
122
+ compare_file "$file"
123
+ done
124
+ fi
125
+
126
+ echo ""
127
+ echo -e "${CYAN}══════════════════════════════════════════════════${NC}"
128
+ echo -e "${CYAN}Classification Legend${NC}"
129
+ echo -e "${CYAN}══════════════════════════════════════════════════${NC}"
130
+ echo ""
131
+ echo -e " ${GREEN}[Class A]${NC} Auto-generatable - Safe to create/replace"
132
+ echo -e " ${YELLOW}[Class B]${NC} Review required - Generate diff, human reviews"
133
+ echo -e " ${RED}[Class C]${NC} Protected - Human approval mandatory"
134
+ echo ""