ai-core-framework 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +21 -0
- package/.codex-plugin/plugin.json +35 -0
- package/.cursor-plugin/plugin.json +22 -0
- package/README.md +173 -0
- package/bin/ai-core-framework.js +110 -0
- package/core/README.md +162 -0
- package/core/agents/README.md +32 -0
- package/core/agents/business-analyst.md +269 -0
- package/core/agents/developer.md +375 -0
- package/core/agents/qa-tester.md +477 -0
- package/core/agents/scrum-master.md +136 -0
- package/core/agents/tech-lead.md +345 -0
- package/core/config/backlog.schema.json +38 -0
- package/core/config/docs-policy.default.json +37 -0
- package/core/config/release.schema.json +120 -0
- package/core/config/ticket.schema.json +253 -0
- package/core/rules/00-global-rules.md +373 -0
- package/core/rules/01-git-workflow.md +388 -0
- package/core/rules/02-code-quality.md +77 -0
- package/core/rules/03-security.md +78 -0
- package/core/rules/04-documentation.md +72 -0
- package/core/rules/05-testing-mandatory.md +374 -0
- package/core/rules/06-approval-gates.md +388 -0
- package/core/rules/07-definition-of-ready.md +112 -0
- package/core/rules/08-definition-of-done.md +149 -0
- package/core/scripts/ai-core.sh +456 -0
- package/core/scripts/generate-views.sh +210 -0
- package/core/scripts/install-codex-prompts.sh +127 -0
- package/core/scripts/log-user-request.sh +113 -0
- package/core/scripts/setup-project.sh +183 -0
- package/core/scripts/sync-platforms.sh +322 -0
- package/core/scripts/validate-audit-log.sh +73 -0
- package/core/scripts/validate-docs.sh +365 -0
- package/core/scripts/validate-permissions.sh +132 -0
- package/core/scripts/validate-state.sh +611 -0
- package/core/scripts/workflow.sh +513 -0
- package/core/skills/README.md +21 -0
- package/core/skills/ai-core-commands/SKILL.md +86 -0
- package/core/skills/brainstorming/SKILL.md +40 -0
- package/core/skills/development-implement-task/SKILL.md +308 -0
- package/core/skills/executing-ticket/SKILL.md +28 -0
- package/core/skills/git-branch-status/SKILL.md +56 -0
- package/core/skills/git-cleanup-branches/SKILL.md +57 -0
- package/core/skills/git-scan-untracked/SKILL.md +50 -0
- package/core/skills/meta-generate-views/SKILL.md +54 -0
- package/core/skills/meta-request-log/SKILL.md +61 -0
- package/core/skills/meta-sprint-report/SKILL.md +59 -0
- package/core/skills/meta-sync-platforms/SKILL.md +53 -0
- package/core/skills/meta-ticket-health/SKILL.md +61 -0
- package/core/skills/meta-validate-audit-log/SKILL.md +42 -0
- package/core/skills/meta-validate-docs/SKILL.md +58 -0
- package/core/skills/meta-validate-permissions/SKILL.md +53 -0
- package/core/skills/meta-validate-state/SKILL.md +58 -0
- package/core/skills/planning-analyze-requirements/SKILL.md +471 -0
- package/core/skills/planning-backlog-status/SKILL.md +57 -0
- package/core/skills/planning-document-existing-requirements/SKILL.md +246 -0
- package/core/skills/planning-estimate-task/SKILL.md +60 -0
- package/core/skills/planning-groom-ticket/SKILL.md +442 -0
- package/core/skills/planning-mark-ready/SKILL.md +111 -0
- package/core/skills/planning-plan-refactor/SKILL.md +66 -0
- package/core/skills/planning-plan-sprint/SKILL.md +112 -0
- package/core/skills/planning-prioritize-backlog/SKILL.md +62 -0
- package/core/skills/planning-write-plan/SKILL.md +68 -0
- package/core/skills/project-detect-stack/SKILL.md +71 -0
- package/core/skills/project-discover-codebase/SKILL.md +74 -0
- package/core/skills/project-setup-project/SKILL.md +113 -0
- package/core/skills/qa-bug-status/SKILL.md +52 -0
- package/core/skills/qa-report-bug/SKILL.md +518 -0
- package/core/skills/qa-smoke-test/SKILL.md +387 -0
- package/core/skills/qa-triage-bug/SKILL.md +62 -0
- package/core/skills/qa-verify-fix/SKILL.md +446 -0
- package/core/skills/release-hotfix/SKILL.md +117 -0
- package/core/skills/release-release/SKILL.md +123 -0
- package/core/skills/release-rollback/SKILL.md +62 -0
- package/core/skills/review-create-pr/SKILL.md +418 -0
- package/core/skills/review-merge-pr/SKILL.md +425 -0
- package/core/skills/review-techlead-review/SKILL.md +547 -0
- package/core/skills/using-ai-core/SKILL.md +72 -0
- package/core/skills/verification-before-done/SKILL.md +35 -0
- package/core/skills/writing-implementation-plan/SKILL.md +45 -0
- package/core/templates/ci/ai-core-governance.yml +112 -0
- package/core/templates/ci/node-pnpm.yml +35 -0
- package/core/templates/pm/retrospective-template.md +47 -0
- package/core/templates/pm/sprint-plan-template.md +45 -0
- package/core/templates/pr/pull-request-template.md +247 -0
- package/core/templates/project/CODEOWNERS +11 -0
- package/core/templates/project/docs-policy.json +3 -0
- package/core/templates/project/project-config.yaml +137 -0
- package/core/templates/project/project-structure.yaml +76 -0
- package/core/templates/qa/bug-report-template.md +371 -0
- package/core/templates/qa/test-plan-template.md +57 -0
- package/core/templates/release/release-record-template.json +67 -0
- package/core/templates/requirements/PRD-template.md +58 -0
- package/core/templates/requirements/user-story-template.md +381 -0
- package/core/templates/technical/ADR-template.md +46 -0
- package/core/templates/technical/refactor-plan-template.md +84 -0
- package/core/templates/technical/tech-design-template.md +71 -0
- package/core/workflows/bug-lifecycle.md +56 -0
- package/core/workflows/feature-lifecycle.md +347 -0
- package/core/workflows/hotfix-lifecycle.md +65 -0
- package/core/workflows/sprint-lifecycle.md +56 -0
- package/lib/install-codex.js +85 -0
- package/package.json +36 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
name: AI Core Governance
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
paths:
|
|
6
|
+
- "core/**"
|
|
7
|
+
- "config/**"
|
|
8
|
+
- "project/**"
|
|
9
|
+
- "docs/**"
|
|
10
|
+
- "scripts/**"
|
|
11
|
+
- ".github/workflows/ai-core-governance.yml"
|
|
12
|
+
push:
|
|
13
|
+
branches: [main, develop, "release/**"]
|
|
14
|
+
paths:
|
|
15
|
+
- "core/**"
|
|
16
|
+
- "config/**"
|
|
17
|
+
- "project/**"
|
|
18
|
+
- "docs/**"
|
|
19
|
+
- "scripts/**"
|
|
20
|
+
- ".github/workflows/ai-core-governance.yml"
|
|
21
|
+
|
|
22
|
+
concurrency:
|
|
23
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
24
|
+
cancel-in-progress: true
|
|
25
|
+
|
|
26
|
+
jobs:
|
|
27
|
+
governance:
|
|
28
|
+
name: Governance Gates
|
|
29
|
+
runs-on: ubuntu-latest
|
|
30
|
+
timeout-minutes: 8
|
|
31
|
+
steps:
|
|
32
|
+
- uses: actions/checkout@v4
|
|
33
|
+
with:
|
|
34
|
+
fetch-depth: 0
|
|
35
|
+
|
|
36
|
+
- name: Install dependencies
|
|
37
|
+
run: |
|
|
38
|
+
sudo apt-get update -qq
|
|
39
|
+
sudo apt-get install -y jq
|
|
40
|
+
npm install -g ajv-cli@5
|
|
41
|
+
|
|
42
|
+
- name: Make scripts executable
|
|
43
|
+
run: chmod +x core/scripts/*.sh
|
|
44
|
+
|
|
45
|
+
- name: Validate ticket schemas
|
|
46
|
+
run: |
|
|
47
|
+
set -e
|
|
48
|
+
for ticket in project/tickets/*.json; do
|
|
49
|
+
if [ ! -f "$ticket" ]; then continue; fi
|
|
50
|
+
ajv validate -s core/config/ticket.schema.json -d "$ticket"
|
|
51
|
+
done
|
|
52
|
+
|
|
53
|
+
- name: Validate backlog schema
|
|
54
|
+
run: |
|
|
55
|
+
if [ ! -f "project/backlog/backlog.json" ]; then
|
|
56
|
+
echo "No backlog file, skipping"
|
|
57
|
+
exit 0
|
|
58
|
+
fi
|
|
59
|
+
ajv validate -s core/config/backlog.schema.json -d project/backlog/backlog.json
|
|
60
|
+
|
|
61
|
+
- name: Validate release schemas
|
|
62
|
+
run: |
|
|
63
|
+
set -e
|
|
64
|
+
for release in project/releases/*.json; do
|
|
65
|
+
if [ ! -f "$release" ]; then continue; fi
|
|
66
|
+
ajv validate -s core/config/release.schema.json -d "$release"
|
|
67
|
+
done
|
|
68
|
+
|
|
69
|
+
- name: Validate state
|
|
70
|
+
run: bash core/scripts/validate-state.sh
|
|
71
|
+
|
|
72
|
+
- name: Validate docs
|
|
73
|
+
if: github.event_name == 'pull_request'
|
|
74
|
+
run: bash core/scripts/validate-docs.sh --base origin/${{ github.base_ref }}
|
|
75
|
+
|
|
76
|
+
- name: Validate permissions
|
|
77
|
+
run: bash core/scripts/validate-permissions.sh
|
|
78
|
+
|
|
79
|
+
- name: Validate audit log
|
|
80
|
+
run: bash core/scripts/validate-audit-log.sh
|
|
81
|
+
|
|
82
|
+
- name: Generate views smoke test
|
|
83
|
+
run: bash core/scripts/generate-views.sh
|
|
84
|
+
|
|
85
|
+
- name: Check state history immutability
|
|
86
|
+
if: github.event_name == 'pull_request'
|
|
87
|
+
run: |
|
|
88
|
+
CHANGED=$(git diff --name-only origin/${{ github.base_ref }}...HEAD -- 'project/tickets/*.json' || true)
|
|
89
|
+
if [ -z "$CHANGED" ]; then
|
|
90
|
+
echo "No ticket changes"
|
|
91
|
+
exit 0
|
|
92
|
+
fi
|
|
93
|
+
|
|
94
|
+
ERRORS=0
|
|
95
|
+
for ticket in $CHANGED; do
|
|
96
|
+
if [ ! -f "$ticket" ]; then
|
|
97
|
+
echo "::warning::Ticket deleted: $ticket"
|
|
98
|
+
continue
|
|
99
|
+
fi
|
|
100
|
+
|
|
101
|
+
BASE_HISTORY_COUNT=$(git show origin/${{ github.base_ref }}:"$ticket" 2>/dev/null | jq '.state_history | length' || echo "0")
|
|
102
|
+
HEAD_HISTORY_COUNT=$(jq '.state_history | length' "$ticket")
|
|
103
|
+
|
|
104
|
+
if [ "$HEAD_HISTORY_COUNT" -lt "$BASE_HISTORY_COUNT" ]; then
|
|
105
|
+
echo "::error file=$ticket::State history entries removed"
|
|
106
|
+
ERRORS=$((ERRORS + 1))
|
|
107
|
+
fi
|
|
108
|
+
done
|
|
109
|
+
|
|
110
|
+
if [ "$ERRORS" -gt 0 ]; then
|
|
111
|
+
exit 1
|
|
112
|
+
fi
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
name: Node PNPM CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches: [develop, main, "release/**"]
|
|
6
|
+
push:
|
|
7
|
+
branches: [develop, main]
|
|
8
|
+
|
|
9
|
+
env:
|
|
10
|
+
NODE_VERSION: "20"
|
|
11
|
+
PNPM_VERSION: "9"
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
node-ci:
|
|
15
|
+
name: Lint, Typecheck, Test
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
timeout-minutes: 15
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v4
|
|
20
|
+
with:
|
|
21
|
+
fetch-depth: 0
|
|
22
|
+
|
|
23
|
+
- uses: pnpm/action-setup@v3
|
|
24
|
+
with:
|
|
25
|
+
version: ${{ env.PNPM_VERSION }}
|
|
26
|
+
|
|
27
|
+
- uses: actions/setup-node@v4
|
|
28
|
+
with:
|
|
29
|
+
node-version: ${{ env.NODE_VERSION }}
|
|
30
|
+
cache: pnpm
|
|
31
|
+
|
|
32
|
+
- run: pnpm install --frozen-lockfile
|
|
33
|
+
- run: pnpm run lint
|
|
34
|
+
- run: pnpm run typecheck
|
|
35
|
+
- run: pnpm run test:unit --coverage
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Retrospective Template
|
|
2
|
+
|
|
3
|
+
## Sprint
|
|
4
|
+
|
|
5
|
+
- Sprint ID:
|
|
6
|
+
- Date:
|
|
7
|
+
- Facilitator:
|
|
8
|
+
- Attendees:
|
|
9
|
+
|
|
10
|
+
## Metrics Snapshot
|
|
11
|
+
|
|
12
|
+
- Committed points:
|
|
13
|
+
- Completed points:
|
|
14
|
+
- Carryover points:
|
|
15
|
+
- Escaped defects:
|
|
16
|
+
- Average cycle time:
|
|
17
|
+
- Blocked ticket count:
|
|
18
|
+
|
|
19
|
+
## What Went Well
|
|
20
|
+
|
|
21
|
+
-
|
|
22
|
+
|
|
23
|
+
## What Did Not Go Well
|
|
24
|
+
|
|
25
|
+
-
|
|
26
|
+
|
|
27
|
+
## Root Causes
|
|
28
|
+
|
|
29
|
+
| Issue | Root cause | Evidence |
|
|
30
|
+
|-------|------------|----------|
|
|
31
|
+
| | | |
|
|
32
|
+
|
|
33
|
+
## Action Items
|
|
34
|
+
|
|
35
|
+
| Action | Owner | Due date | Success signal |
|
|
36
|
+
|--------|-------|----------|----------------|
|
|
37
|
+
| | | | |
|
|
38
|
+
|
|
39
|
+
## Process Rule Changes
|
|
40
|
+
|
|
41
|
+
- Rule or workflow to update:
|
|
42
|
+
- Reason:
|
|
43
|
+
- Owner:
|
|
44
|
+
|
|
45
|
+
## Follow-up Tickets
|
|
46
|
+
|
|
47
|
+
-
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Sprint Plan Template
|
|
2
|
+
|
|
3
|
+
## Sprint Metadata
|
|
4
|
+
|
|
5
|
+
- Sprint ID:
|
|
6
|
+
- Sprint name:
|
|
7
|
+
- Start date:
|
|
8
|
+
- End date:
|
|
9
|
+
- Scrum Master:
|
|
10
|
+
- Sprint goal:
|
|
11
|
+
|
|
12
|
+
## Capacity
|
|
13
|
+
|
|
14
|
+
| Role | Available days | Notes |
|
|
15
|
+
|------|----------------|-------|
|
|
16
|
+
| Developer | | |
|
|
17
|
+
| Tech Lead | | |
|
|
18
|
+
| QA | | |
|
|
19
|
+
|
|
20
|
+
- Configured capacity points:
|
|
21
|
+
- Reserved bug/support capacity:
|
|
22
|
+
- Committed feature capacity:
|
|
23
|
+
|
|
24
|
+
## Committed Tickets
|
|
25
|
+
|
|
26
|
+
| Ticket | Title | Points | Owner | Dependencies | Risk |
|
|
27
|
+
|--------|-------|--------|-------|--------------|------|
|
|
28
|
+
| | | | | | |
|
|
29
|
+
|
|
30
|
+
## Sprint Risks
|
|
31
|
+
|
|
32
|
+
| Risk | Probability | Impact | Mitigation | Owner |
|
|
33
|
+
|------|-------------|--------|------------|-------|
|
|
34
|
+
| | | | | |
|
|
35
|
+
|
|
36
|
+
## Out of Scope
|
|
37
|
+
|
|
38
|
+
-
|
|
39
|
+
|
|
40
|
+
## Approval
|
|
41
|
+
|
|
42
|
+
- Scrum Master:
|
|
43
|
+
- Tech Lead:
|
|
44
|
+
- BA/PM:
|
|
45
|
+
- QA:
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Pull Request Template
|
|
3
|
+
Instructions for developer:
|
|
4
|
+
- Fill all required sections (marked with *)
|
|
5
|
+
- Delete sections not applicable
|
|
6
|
+
- Keep it concise but informative
|
|
7
|
+
- Reviewer will use this as their guide
|
|
8
|
+
-->
|
|
9
|
+
|
|
10
|
+
## 📝 Summary *
|
|
11
|
+
|
|
12
|
+
<!-- 1-3 sentences: what does this PR do and why? -->
|
|
13
|
+
|
|
14
|
+
**Ticket**: [TICKET-XXX](./project/tickets/TICKET-XXX.json) <!-- Auto-filled by /create-pr -->
|
|
15
|
+
|
|
16
|
+
**Type**: <!-- feature | bugfix | hotfix | refactor | chore | docs -->
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 🎯 What changed *
|
|
21
|
+
|
|
22
|
+
<!-- Bullet list of the main changes -->
|
|
23
|
+
|
|
24
|
+
-
|
|
25
|
+
-
|
|
26
|
+
-
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 🧪 How to test *
|
|
31
|
+
|
|
32
|
+
<!-- Reviewer should be able to manually verify with these steps -->
|
|
33
|
+
|
|
34
|
+
### Acceptance Criteria Coverage
|
|
35
|
+
|
|
36
|
+
<!-- List each AC scenario and how it's tested -->
|
|
37
|
+
|
|
38
|
+
- [ ] **Scenario 1**: [Happy path description]
|
|
39
|
+
- Test: `tests/path/to/test.spec.ts:lineNumber`
|
|
40
|
+
- Manual: `[steps to reproduce]`
|
|
41
|
+
|
|
42
|
+
- [ ] **Scenario 2**: [Edge case description]
|
|
43
|
+
- Test: `tests/path/to/test.spec.ts:lineNumber`
|
|
44
|
+
- Manual: `[steps]`
|
|
45
|
+
|
|
46
|
+
- [ ] **Scenario 3**: [Error case description]
|
|
47
|
+
- Test: `tests/path/to/test.spec.ts:lineNumber`
|
|
48
|
+
|
|
49
|
+
### Additional testing
|
|
50
|
+
|
|
51
|
+
<!-- Anything beyond AC that reviewer should check -->
|
|
52
|
+
|
|
53
|
+
-
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 📸 Screenshots / Recordings
|
|
58
|
+
|
|
59
|
+
<!-- REQUIRED if UI changes. Delete section otherwise. -->
|
|
60
|
+
|
|
61
|
+
### Before
|
|
62
|
+
<!-- [screenshot or "N/A - new feature"] -->
|
|
63
|
+
|
|
64
|
+
### After
|
|
65
|
+
<!-- [screenshot] -->
|
|
66
|
+
|
|
67
|
+
### Mobile (if applicable)
|
|
68
|
+
<!-- [screenshot] -->
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 🔧 Technical Notes
|
|
73
|
+
|
|
74
|
+
<!-- Reviewer's mental model - what did you decide and why -->
|
|
75
|
+
|
|
76
|
+
### Approach
|
|
77
|
+
|
|
78
|
+
<!-- 2-3 sentences about technical approach -->
|
|
79
|
+
|
|
80
|
+
### Key decisions
|
|
81
|
+
|
|
82
|
+
- **Decision 1**: [what] - [why]
|
|
83
|
+
- **Decision 2**: [what] - [why]
|
|
84
|
+
|
|
85
|
+
### Trade-offs considered
|
|
86
|
+
|
|
87
|
+
<!-- What alternatives did you consider? Why didn't you choose them? -->
|
|
88
|
+
|
|
89
|
+
-
|
|
90
|
+
|
|
91
|
+
### Follow-up work
|
|
92
|
+
|
|
93
|
+
<!-- Not blocking this PR, but related work -->
|
|
94
|
+
|
|
95
|
+
- [ ] TICKET-YYY: [description]
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 📋 Self-Review Checklist *
|
|
100
|
+
|
|
101
|
+
<!-- Developer: check each item before requesting review -->
|
|
102
|
+
|
|
103
|
+
### Functionality
|
|
104
|
+
- [ ] All acceptance criteria scenarios implemented
|
|
105
|
+
- [ ] Manual testing completed on local/staging
|
|
106
|
+
- [ ] No regressions in related features (spot-checked)
|
|
107
|
+
|
|
108
|
+
### Code Quality
|
|
109
|
+
- [ ] Code follows project style guide
|
|
110
|
+
- [ ] Names are descriptive (no `x`, `tmp`, `data`)
|
|
111
|
+
- [ ] Functions < 50 lines, files < 500 lines
|
|
112
|
+
- [ ] No commented-out code
|
|
113
|
+
- [ ] No `console.log` / `print` debug statements
|
|
114
|
+
- [ ] No TODO/FIXME without linked ticket
|
|
115
|
+
|
|
116
|
+
### Testing
|
|
117
|
+
- [ ] Unit tests for new logic
|
|
118
|
+
- [ ] Integration tests for API/DB changes
|
|
119
|
+
- [ ] Edge cases covered (null, empty, boundary, error)
|
|
120
|
+
- [ ] Diff coverage ≥ 80%
|
|
121
|
+
- [ ] No disabled/skipped tests (or justified with ticket)
|
|
122
|
+
- [ ] All tests pass locally
|
|
123
|
+
|
|
124
|
+
### Security
|
|
125
|
+
- [ ] No secrets committed (keys, passwords, tokens)
|
|
126
|
+
- [ ] Input validation on all user inputs
|
|
127
|
+
- [ ] Authorization checks (if applicable)
|
|
128
|
+
- [ ] Output encoding (if rendering user content)
|
|
129
|
+
- [ ] SQL/NoSQL queries parameterized
|
|
130
|
+
- [ ] No new dependencies with known vulnerabilities
|
|
131
|
+
|
|
132
|
+
### Documentation
|
|
133
|
+
- [ ] API docs updated (if endpoint changed)
|
|
134
|
+
- [ ] README updated (if setup changed)
|
|
135
|
+
- [ ] CHANGELOG entry added
|
|
136
|
+
- [ ] ADR created (if architecture decision)
|
|
137
|
+
- [ ] Complex logic has explaining comments
|
|
138
|
+
|
|
139
|
+
### Git Hygiene
|
|
140
|
+
- [ ] Branch name follows convention (`type/TICKET-XXX-slug`)
|
|
141
|
+
- [ ] Commits follow Conventional Commits format
|
|
142
|
+
- [ ] Atomic commits (one logical change each)
|
|
143
|
+
- [ ] TDD pattern visible (test commits before feature commits)
|
|
144
|
+
- [ ] No "WIP" or debug commits
|
|
145
|
+
- [ ] Branch up-to-date with develop
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## 🚨 Breaking Changes
|
|
150
|
+
|
|
151
|
+
<!-- Any? Describe migration path. Delete section if none. -->
|
|
152
|
+
|
|
153
|
+
- [ ] This PR contains breaking changes
|
|
154
|
+
|
|
155
|
+
### What breaks
|
|
156
|
+
-
|
|
157
|
+
|
|
158
|
+
### Migration path
|
|
159
|
+
-
|
|
160
|
+
|
|
161
|
+
### Affected consumers
|
|
162
|
+
-
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## 🔗 Related
|
|
167
|
+
|
|
168
|
+
<!-- Links to relevant context -->
|
|
169
|
+
|
|
170
|
+
- **ADR**: [ADR-XXXX](./docs/runtime/adr/XXXX-title.md) <!-- if applicable -->
|
|
171
|
+
- **Design**: [Figma link] <!-- if applicable -->
|
|
172
|
+
- **Spec**: [Doc link] <!-- if applicable -->
|
|
173
|
+
- **Previous PRs**: #XXX, #YYY <!-- related/dependency -->
|
|
174
|
+
- **Follow-up PRs**: (planned) <!-- if applicable -->
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## 📊 Impact Assessment
|
|
179
|
+
|
|
180
|
+
### Performance
|
|
181
|
+
<!-- Expected impact on performance. Benchmarks if significant. -->
|
|
182
|
+
|
|
183
|
+
- [ ] No performance regression expected
|
|
184
|
+
- [ ] Performance improvement: [details]
|
|
185
|
+
- [ ] Performance impact acceptable: [details + justification]
|
|
186
|
+
|
|
187
|
+
### Database
|
|
188
|
+
<!-- Migration? Schema change? Indexes? -->
|
|
189
|
+
|
|
190
|
+
- [ ] No database changes
|
|
191
|
+
- [ ] Migration included: `migrations/YYYYMMDD_description.sql`
|
|
192
|
+
- [ ] Backward compatible migration
|
|
193
|
+
- [ ] Requires maintenance window
|
|
194
|
+
|
|
195
|
+
### Deployment
|
|
196
|
+
<!-- Any special considerations? -->
|
|
197
|
+
|
|
198
|
+
- [ ] Standard deployment (no special steps)
|
|
199
|
+
- [ ] Requires env variable: `NEW_VAR_NAME` (documented in `.env.example`)
|
|
200
|
+
- [ ] Requires infra change (see: [ticket/doc])
|
|
201
|
+
- [ ] Feature flag: `flag_name` (default: off)
|
|
202
|
+
- [ ] Rollback plan: [describe]
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## ✅ Reviewer Instructions
|
|
207
|
+
|
|
208
|
+
### Suggested review order
|
|
209
|
+
1. Read this description (you're doing it ✓)
|
|
210
|
+
2. Review [TICKET-XXX acceptance criteria](./ticket-link)
|
|
211
|
+
3. Look at [files changed](./files-link)
|
|
212
|
+
4. Run tests locally (optional)
|
|
213
|
+
5. Test manually: [specific scenario]
|
|
214
|
+
|
|
215
|
+
### Particularly important to review
|
|
216
|
+
<!-- Point reviewer to areas needing extra attention -->
|
|
217
|
+
|
|
218
|
+
-
|
|
219
|
+
|
|
220
|
+
### Questions for reviewer
|
|
221
|
+
<!-- Anything you're uncertain about -->
|
|
222
|
+
|
|
223
|
+
-
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## 📦 Metadata (auto-populated by /create-pr)
|
|
228
|
+
|
|
229
|
+
<!-- Don't edit these - /create-pr fills them -->
|
|
230
|
+
|
|
231
|
+
- **Branch**: `<branch_name>`
|
|
232
|
+
- **Base**: `develop`
|
|
233
|
+
- **Commits**: `<count>`
|
|
234
|
+
- **Lines**: `+<added> / -<removed>`
|
|
235
|
+
- **Files changed**: `<count>`
|
|
236
|
+
- **Coverage**: diff `<pct>%` / overall `<pct>%`
|
|
237
|
+
- **CI status**: <!-- check GitHub -->
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
<!--
|
|
242
|
+
DO NOT EDIT BELOW THIS LINE - auto-generated by /create-pr
|
|
243
|
+
-->
|
|
244
|
+
|
|
245
|
+
<!-- TICKET_REF: TICKET-XXX -->
|
|
246
|
+
<!-- AGENT: developer -->
|
|
247
|
+
<!-- TEMPLATE_VERSION: 1.0.0 -->
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# AI Core governance ownership.
|
|
2
|
+
#
|
|
3
|
+
# Replace placeholder teams/users for each consuming repo.
|
|
4
|
+
/core/ @tech-leads
|
|
5
|
+
/config/ @scrum-masters @tech-leads
|
|
6
|
+
/project/ @scrum-masters @tech-leads
|
|
7
|
+
/docs/runtime/adr/ @tech-leads
|
|
8
|
+
/docs/project/specs/ @product-owners @tech-leads
|
|
9
|
+
/docs/project/plans/ @tech-leads
|
|
10
|
+
/docs/runtime/runbooks/ @tech-leads @qa-leads
|
|
11
|
+
/.github/workflows/ @tech-leads
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# ====================================================================
|
|
2
|
+
# PROJECT CONFIGURATION
|
|
3
|
+
# Single source of truth for project settings.
|
|
4
|
+
# Every agent and command reads from here.
|
|
5
|
+
# ====================================================================
|
|
6
|
+
|
|
7
|
+
project:
|
|
8
|
+
name: "My Awesome Project"
|
|
9
|
+
description: ""
|
|
10
|
+
repo_url: ""
|
|
11
|
+
team_size: "small" # solo | small | medium | enterprise
|
|
12
|
+
|
|
13
|
+
# --- Tech stack (auto-detect or manual set) ---
|
|
14
|
+
stack:
|
|
15
|
+
language: "typescript" # typescript | python | java | go | ...
|
|
16
|
+
runtime: "node" # node | deno | bun | python | jvm | ...
|
|
17
|
+
framework: "nextjs" # nextjs | express | django | spring | ...
|
|
18
|
+
database: "postgres"
|
|
19
|
+
test_runner: "vitest" # vitest | jest | pytest | junit | ...
|
|
20
|
+
package_manager: "pnpm" # npm | yarn | pnpm | pip | poetry | ...
|
|
21
|
+
|
|
22
|
+
# --- Git workflow ---
|
|
23
|
+
git:
|
|
24
|
+
main_branch: "main"
|
|
25
|
+
develop_branch: "develop"
|
|
26
|
+
protected_branches:
|
|
27
|
+
- "main"
|
|
28
|
+
- "develop"
|
|
29
|
+
- "release/*"
|
|
30
|
+
- "staging"
|
|
31
|
+
branch_prefix:
|
|
32
|
+
feature: "feature/"
|
|
33
|
+
bugfix: "bugfix/"
|
|
34
|
+
hotfix: "hotfix/"
|
|
35
|
+
chore: "chore/"
|
|
36
|
+
refactor: "refactor/"
|
|
37
|
+
commit_convention: "conventional" # conventional | gitmoji | custom
|
|
38
|
+
allowed_commit_types:
|
|
39
|
+
- feat
|
|
40
|
+
- fix
|
|
41
|
+
- docs
|
|
42
|
+
- style
|
|
43
|
+
- refactor
|
|
44
|
+
- perf
|
|
45
|
+
- test
|
|
46
|
+
- chore
|
|
47
|
+
- build
|
|
48
|
+
- ci
|
|
49
|
+
- revert
|
|
50
|
+
|
|
51
|
+
# --- Quality gates ---
|
|
52
|
+
quality:
|
|
53
|
+
coverage_threshold:
|
|
54
|
+
diff: 80 # % coverage on new code in PR
|
|
55
|
+
overall: 70 # % total coverage
|
|
56
|
+
lint:
|
|
57
|
+
blocking: true # Lint errors block merge
|
|
58
|
+
warnings_allowed: true
|
|
59
|
+
max_complexity: 10 # Cyclomatic complexity per function
|
|
60
|
+
max_file_lines: 500
|
|
61
|
+
max_function_lines: 50
|
|
62
|
+
|
|
63
|
+
# --- Scrum configuration ---
|
|
64
|
+
scrum:
|
|
65
|
+
sprint_length_days: 14
|
|
66
|
+
sprint_capacity_points: 30 # Total story points per sprint for team 2-5
|
|
67
|
+
velocity_tracking: true
|
|
68
|
+
ceremonies:
|
|
69
|
+
planning: true
|
|
70
|
+
daily_standup: true
|
|
71
|
+
review: true
|
|
72
|
+
retrospective: true
|
|
73
|
+
story_point_scale: "fibonacci" # fibonacci | tshirt | linear
|
|
74
|
+
fibonacci_values: [1, 2, 3, 5, 8, 13, 21]
|
|
75
|
+
|
|
76
|
+
# --- Ticket states ---
|
|
77
|
+
ticket_states:
|
|
78
|
+
- DRAFT # Just created, needs grooming
|
|
79
|
+
- GROOMED # BA + Tech Lead reviewed
|
|
80
|
+
- READY # Passed DoR, ready for sprint
|
|
81
|
+
- IN_PROGRESS # Being worked on
|
|
82
|
+
- IN_REVIEW # PR created, awaiting review
|
|
83
|
+
- QA # Merged, being tested
|
|
84
|
+
- DONE # Passed QA
|
|
85
|
+
- BLOCKED # Blocked (can be from any state)
|
|
86
|
+
- CANCELLED # Won't do
|
|
87
|
+
|
|
88
|
+
# --- Agents registry ---
|
|
89
|
+
agents:
|
|
90
|
+
business-analyst:
|
|
91
|
+
enabled: true
|
|
92
|
+
model: opus
|
|
93
|
+
max_tokens_per_session: 100000
|
|
94
|
+
tech-lead:
|
|
95
|
+
enabled: true
|
|
96
|
+
model: opus
|
|
97
|
+
max_tokens_per_session: 150000
|
|
98
|
+
developer:
|
|
99
|
+
enabled: true
|
|
100
|
+
model: sonnet
|
|
101
|
+
max_tokens_per_session: 200000
|
|
102
|
+
qa-tester:
|
|
103
|
+
enabled: true
|
|
104
|
+
model: sonnet
|
|
105
|
+
max_tokens_per_session: 100000
|
|
106
|
+
scrum-master:
|
|
107
|
+
enabled: true
|
|
108
|
+
model: sonnet
|
|
109
|
+
max_tokens_per_session: 80000
|
|
110
|
+
|
|
111
|
+
# --- Platform sync ---
|
|
112
|
+
platforms:
|
|
113
|
+
claude_code:
|
|
114
|
+
enabled: true
|
|
115
|
+
output_dir: ".claude"
|
|
116
|
+
cursor:
|
|
117
|
+
enabled: true
|
|
118
|
+
output_dir: ".cursor/rules"
|
|
119
|
+
format: "mdc"
|
|
120
|
+
windsurf:
|
|
121
|
+
enabled: true
|
|
122
|
+
output_file: ".windsurfrules"
|
|
123
|
+
|
|
124
|
+
# --- Notifications (optional integrations) ---
|
|
125
|
+
notifications:
|
|
126
|
+
slack_webhook: ""
|
|
127
|
+
github_issues: true
|
|
128
|
+
email: ""
|
|
129
|
+
|
|
130
|
+
# --- Feature flags ---
|
|
131
|
+
features:
|
|
132
|
+
auto_create_adr: true # Automatically create ADR when there is an architecture decision
|
|
133
|
+
enforce_tdd: true # Block code without test first
|
|
134
|
+
require_pr_template: true
|
|
135
|
+
require_handoff_protocol: true
|
|
136
|
+
metric_tracking: true
|
|
137
|
+
ai_suggested_reviewers: true
|