ai-core-framework 0.2.0 → 0.3.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 (68) hide show
  1. package/README.md +8 -8
  2. package/agents/business-analyst.md +6 -6
  3. package/agents/developer.md +2 -2
  4. package/agents/qa-tester.md +3 -3
  5. package/agents/scrum-master.md +9 -9
  6. package/agents/tech-lead.md +4 -4
  7. package/{config → docs/config}/backlog.schema.json +1 -1
  8. package/{config → docs/config}/release.schema.json +1 -1
  9. package/{config → docs/config}/ticket.schema.json +1 -1
  10. package/lib/install-codex.js +1 -1
  11. package/package.json +2 -2
  12. package/rules/00-global-rules.md +13 -13
  13. package/rules/02-code-quality.md +1 -1
  14. package/rules/05-testing-mandatory.md +2 -2
  15. package/rules/06-approval-gates.md +2 -2
  16. package/rules/08-definition-of-done.md +1 -1
  17. package/scripts/ai-core.sh +8 -8
  18. package/scripts/generate-views.sh +2 -2
  19. package/scripts/log-user-request.sh +2 -2
  20. package/scripts/setup-project.sh +18 -18
  21. package/scripts/sync-platforms.sh +2 -2
  22. package/scripts/validate-audit-log.sh +1 -1
  23. package/scripts/validate-docs.sh +6 -6
  24. package/scripts/validate-permissions.sh +2 -2
  25. package/scripts/validate-state.sh +5 -5
  26. package/scripts/workflow.sh +9 -9
  27. package/skills/brainstorming/SKILL.md +1 -1
  28. package/skills/development-implement-task/SKILL.md +5 -5
  29. package/skills/meta-generate-views/SKILL.md +8 -8
  30. package/skills/meta-request-log/SKILL.md +4 -4
  31. package/skills/meta-sprint-report/SKILL.md +2 -2
  32. package/skills/meta-ticket-health/SKILL.md +1 -1
  33. package/skills/meta-validate-audit-log/SKILL.md +1 -1
  34. package/skills/meta-validate-permissions/SKILL.md +1 -1
  35. package/skills/meta-validate-state/SKILL.md +3 -3
  36. package/skills/planning-analyze-requirements/SKILL.md +8 -8
  37. package/skills/planning-backlog-status/SKILL.md +6 -6
  38. package/skills/planning-groom-ticket/SKILL.md +4 -4
  39. package/skills/planning-mark-ready/SKILL.md +2 -2
  40. package/skills/planning-plan-refactor/SKILL.md +3 -3
  41. package/skills/planning-plan-sprint/SKILL.md +4 -4
  42. package/skills/planning-prioritize-backlog/SKILL.md +2 -2
  43. package/skills/planning-write-plan/SKILL.md +1 -1
  44. package/skills/project-detect-stack/SKILL.md +1 -1
  45. package/skills/project-discover-codebase/SKILL.md +2 -2
  46. package/skills/project-setup-project/SKILL.md +10 -10
  47. package/skills/qa-bug-status/SKILL.md +1 -1
  48. package/skills/qa-report-bug/SKILL.md +7 -7
  49. package/skills/qa-smoke-test/SKILL.md +3 -3
  50. package/skills/qa-verify-fix/SKILL.md +3 -3
  51. package/skills/release-hotfix/SKILL.md +2 -2
  52. package/skills/release-release/SKILL.md +2 -2
  53. package/skills/release-rollback/SKILL.md +1 -1
  54. package/skills/review-create-pr/SKILL.md +2 -2
  55. package/skills/review-merge-pr/SKILL.md +1 -1
  56. package/skills/using-ai-core/SKILL.md +5 -4
  57. package/skills/verification-before-done/SKILL.md +1 -1
  58. package/templates/ci/ai-core-governance.yml +11 -11
  59. package/templates/pr/pull-request-template.md +1 -1
  60. package/templates/project/CODEOWNERS +2 -2
  61. package/templates/project/docs-policy.json +1 -1
  62. package/templates/project/project-structure.yaml +20 -20
  63. package/templates/qa/bug-report-template.md +1 -1
  64. package/templates/requirements/user-story-template.md +1 -1
  65. package/workflows/bug-lifecycle.md +3 -3
  66. package/workflows/feature-lifecycle.md +2 -2
  67. package/workflows/sprint-lifecycle.md +2 -2
  68. /package/{config → docs/config}/docs-policy.default.json +0 -0
@@ -79,7 +79,7 @@ curl -sf --max-time 10 "$STAGING_URL/health" || ABORT "Staging not responding"
79
79
  Check build version matches expected:
80
80
  ```bash
81
81
  deployed_commit=$(curl -s "$STAGING_URL/version" | jq -r .commit)
82
- expected_commit=$(cat project/tickets/${TICKET_ID}.json | jq -r .merge_info.merge_commit_sha)
82
+ expected_commit=$(cat docs/runtime/project/tickets/${TICKET_ID}.json | jq -r .merge_info.merge_commit_sha)
83
83
  # Verify deployed >= expected
84
84
  ```
85
85
 
@@ -145,7 +145,7 @@ Required test accounts / test data exist. If not, setup before testing.
145
145
  │ → File separate regression bug (own ticket) │
146
146
  ├──────────────────────────────────────────────────────────┤
147
147
  │ STEP 9: Generate report │
148
- │ Save to: project/test-runs/TICKET-XXX-YYYYMMDD.md│
148
+ │ Save to: docs/runtime/project/test-runs/TICKET-XXX-YYYYMMDD.md│
149
149
  ├──────────────────────────────────────────────────────────┤
150
150
  │ STEP 10: Handoff │
151
151
  │ Pass → scrum-master (ready for release) │
@@ -261,7 +261,7 @@ None 🎉
261
261
  Ticket state: QA → DONE ✅
262
262
 
263
263
  ### Test Run Record
264
- Saved to: `project/test-runs/TICKET-042-20260418.md`
264
+ Saved to: `docs/runtime/project/test-runs/TICKET-042-20260418.md`
265
265
 
266
266
  ---
267
267
  HANDOFF → scrum-master
@@ -54,7 +54,7 @@ After developer claims the bug is fixed and PR is merged + deployed:
54
54
 
55
55
  ### 1. Bug exists + in correct state
56
56
  ```bash
57
- bug_status=$(cat project/bugs/${BUG_ID}.json | jq -r .status)
57
+ bug_status=$(cat docs/runtime/project/bugs/${BUG_ID}.json | jq -r .status)
58
58
  [ "$bug_status" = "FIXED" ] || [ "$bug_status" = "READY_FOR_QA" ] || ABORT
59
59
  ```
60
60
 
@@ -141,7 +141,7 @@ Check linked PR is merged (not still open).
141
141
  │ → HANDOFF → developer │
142
142
  ├──────────────────────────────────────────────────────────┤
143
143
  │ STEP 9: Generate report │
144
- │ Save to: project/verifications/BUG-XXX-YYYYMMDD.md│
144
+ │ Save to: docs/runtime/project/verifications/BUG-XXX-YYYYMMDD.md│
145
145
  ├──────────────────────────────────────────────────────────┤
146
146
  │ STEP 10: Update bug state + notify │
147
147
  └──────────────────────────────────────────────────────────┘
@@ -267,7 +267,7 @@ Bug status: FIXED → VERIFIED
267
267
  - BUG-004 (email HTML rendering): Still open, separate fix
268
268
 
269
269
  ### Verification Record
270
- Saved to: `project/verifications/BUG-002-20260418.md`
270
+ Saved to: `docs/runtime/project/verifications/BUG-002-20260418.md`
271
271
 
272
272
  ---
273
273
  HANDOFF → scrum-master
@@ -56,7 +56,7 @@ Manual:
56
56
  ## 🔄 Execution Flow
57
57
 
58
58
  1. Triage severity and impact.
59
- 2. Create or link `BUG-NNN` in `project/bugs/`.
59
+ 2. Create or link `BUG-NNN` in `docs/runtime/project/bugs/`.
60
60
  3. Create hotfix ticket if needed with minimal AC and status `READY`.
61
61
  4. Create branch `hotfix/BUG-NNN-short-slug` or `hotfix/TICKET-NNN-short-slug` from production branch.
62
62
  5. Reproduce the issue and write a regression test if feasible.
@@ -69,7 +69,7 @@ Manual:
69
69
  12. QA verifies production or pre-prod depending on incident protocol.
70
70
  13. Back-merge hotfix into `develop`.
71
71
  14. Create follow-up ticket for full DoD, monitoring, and root cause analysis.
72
- 15. Write incident summary in `project/releases/` or `project/incidents/`.
72
+ 15. Write incident summary in `docs/runtime/project/releases/` or `docs/runtime/project/incidents/`.
73
73
 
74
74
  ## 🔒 Hard Rules
75
75
 
@@ -65,7 +65,7 @@ Manual:
65
65
  5. Confirm QA evidence exists for every included ticket.
66
66
  6. Check open bugs and known issues.
67
67
  7. Generate changelog with ticket IDs, PRs, bug fixes, migrations, and breaking changes.
68
- 8. Create `project/releases/vX.Y.Z.json` from `templates/release/release-record-template.json` with scope, approvals, risks, deploy plan, rollback plan, and timestamps.
68
+ 8. Create `docs/runtime/project/releases/vX.Y.Z.json` from `templates/release/release-record-template.json` with scope, approvals, risks, deploy plan, rollback plan, and timestamps.
69
69
  9. Create or update release branch if configured.
70
70
  10. Tag release using `vX.Y.Z`.
71
71
  11. Trigger deployment or document manual deployment step.
@@ -93,7 +93,7 @@ Database migrations MUST include forward plan, rollback or mitigation, and backu
93
93
  Do not move an existing release tag. Create a new patch release instead.
94
94
 
95
95
  ### RULE REL-007: Release record schema required
96
- Every release record MUST satisfy `config/release.schema.json`. Missing approvals, rollback verification, QA evidence, security scan status, or known issue approval blocks release.
96
+ Every release record MUST satisfy `docs/config/release.schema.json`. Missing approvals, rollback verification, QA evidence, security scan status, or known issue approval blocks release.
97
97
 
98
98
  ### RULE REL-008: Post-release smoke evidence
99
99
  If a release is marked `RELEASED` and `qa.post_release_smoke_required=true`, then `qa.post_release_smoke_passed=true` and the evidence path MUST be recorded.
@@ -38,7 +38,7 @@ Restore service safely, preserve audit trail, and start follow-up remediation.
38
38
  4. Notify stakeholders and freeze related deploys.
39
39
  5. Execute documented rollback steps.
40
40
  6. Verify service health and core flows.
41
- 7. Record rollback result in `project/releases/`.
41
+ 7. Record rollback result in `docs/runtime/project/releases/`.
42
42
  8. Create follow-up bug/ticket and incident notes.
43
43
 
44
44
  ## 🔒 Hard Rules
@@ -79,7 +79,7 @@ fi
79
79
  Extract TICKET-XXX from branch name, verify:
80
80
  ```bash
81
81
  TICKET_ID=$(echo "$current_branch" | grep -oE 'TICKET-[0-9]+')
82
- test -f "project/tickets/${TICKET_ID}.json" || ABORT
82
+ test -f "docs/runtime/project/tickets/${TICKET_ID}.json" || ABORT
83
83
  ```
84
84
 
85
85
  ### 3. Ticket in IN_PROGRESS
@@ -203,7 +203,7 @@ fi
203
203
  │ - (Optional) Slack notification via webhook │
204
204
  ├──────────────────────────────────────────────────────────┤
205
205
  │ STEP 10: Log metrics │
206
- │ project/metrics/create-pr.jsonl │
206
+ docs/runtime/project/metrics/create-pr.jsonl │
207
207
  └──────────────────────────────────────────────────────────┘
208
208
  ```
209
209
 
@@ -205,7 +205,7 @@ If branch is `hotfix/*`:
205
205
  - Merge commit SHA
206
206
  - Strategy used
207
207
 
208
- Store in `project/audit-log.jsonl`.
208
+ Store in `docs/runtime/project/audit-log.jsonl`.
209
209
 
210
210
  ### RULE MP-009: Rollback plan for risky merges
211
211
  If PR flagged as `high-risk` (auth changes, DB migration, payment):
@@ -42,12 +42,13 @@ If command metadata and user intent conflict, explain the conflict and stop.
42
42
 
43
43
  ## Source Of Truth
44
44
 
45
- - `project/` is machine-readable runtime state.
46
- - `docs/` is human-readable project documentation.
47
- - `config/` is project configuration.
45
+ - `docs/runtime/project/` is machine-readable AI Core runtime state.
46
+ - `docs/project/` is human-readable project and product documentation.
47
+ - `docs/runtime/` also contains operational AI Core documentation.
48
+ - `docs/config/` is project configuration.
48
49
  - Root-level framework folders are portable framework code.
49
50
 
50
- Do not move backlog, tickets, releases, bugs, sprints, or audit records into `docs/`. Generate human-readable summaries in `project/views/` and keep longer narrative docs in `docs/`.
51
+ Keep backlog, tickets, releases, bugs, sprints, and audit records under `docs/runtime/project/`. Generate human-readable summaries in `docs/runtime/project/views/` and keep longer narrative project/product docs in `docs/project/`.
51
52
 
52
53
  ## Guided Report
53
54
 
@@ -14,7 +14,7 @@ Before saying a workflow step is complete:
14
14
  1. Identify what proves the claim.
15
15
  2. Run or inspect the relevant verification.
16
16
  3. Read the result.
17
- 4. Record evidence in `project/test-runs/`, `project/verifications/`, or the ticket.
17
+ 4. Record evidence in `docs/runtime/project/test-runs/`, `docs/runtime/project/verifications/`, or the ticket.
18
18
  5. Only then report completion.
19
19
 
20
20
  ## Required Evidence
@@ -4,10 +4,10 @@ on:
4
4
  pull_request:
5
5
  paths:
6
6
  - "agents/**"
7
- - "config/**"
7
+ - "docs/config/**"
8
8
  - "docs/**"
9
9
  - "hooks/**"
10
- - "project/**"
10
+ - "docs/runtime/project/**"
11
11
  - "rules/**"
12
12
  - "scripts/**"
13
13
  - "skills/**"
@@ -18,10 +18,10 @@ on:
18
18
  branches: [main, develop, "release/**"]
19
19
  paths:
20
20
  - "agents/**"
21
- - "config/**"
21
+ - "docs/config/**"
22
22
  - "docs/**"
23
23
  - "hooks/**"
24
- - "project/**"
24
+ - "docs/runtime/project/**"
25
25
  - "rules/**"
26
26
  - "scripts/**"
27
27
  - "skills/**"
@@ -55,25 +55,25 @@ jobs:
55
55
  - name: Validate ticket schemas
56
56
  run: |
57
57
  set -e
58
- for ticket in project/tickets/*.json; do
58
+ for ticket in docs/runtime/project/tickets/*.json; do
59
59
  if [ ! -f "$ticket" ]; then continue; fi
60
- ajv validate -s config/ticket.schema.json -d "$ticket"
60
+ ajv validate -s docs/config/ticket.schema.json -d "$ticket"
61
61
  done
62
62
 
63
63
  - name: Validate backlog schema
64
64
  run: |
65
- if [ ! -f "project/backlog/backlog.json" ]; then
65
+ if [ ! -f "docs/runtime/project/backlog/backlog.json" ]; then
66
66
  echo "No backlog file, skipping"
67
67
  exit 0
68
68
  fi
69
- ajv validate -s config/backlog.schema.json -d project/backlog/backlog.json
69
+ ajv validate -s docs/config/backlog.schema.json -d docs/runtime/project/backlog/backlog.json
70
70
 
71
71
  - name: Validate release schemas
72
72
  run: |
73
73
  set -e
74
- for release in project/releases/*.json; do
74
+ for release in docs/runtime/project/releases/*.json; do
75
75
  if [ ! -f "$release" ]; then continue; fi
76
- ajv validate -s config/release.schema.json -d "$release"
76
+ ajv validate -s docs/config/release.schema.json -d "$release"
77
77
  done
78
78
 
79
79
  - name: Validate state
@@ -95,7 +95,7 @@ jobs:
95
95
  - name: Check state history immutability
96
96
  if: github.event_name == 'pull_request'
97
97
  run: |
98
- CHANGED=$(git diff --name-only origin/${{ github.base_ref }}...HEAD -- 'project/tickets/*.json' || true)
98
+ CHANGED=$(git diff --name-only origin/${{ github.base_ref }}...HEAD -- 'docs/runtime/project/tickets/*.json' || true)
99
99
  if [ -z "$CHANGED" ]; then
100
100
  echo "No ticket changes"
101
101
  exit 0
@@ -11,7 +11,7 @@ Instructions for developer:
11
11
 
12
12
  <!-- 1-3 sentences: what does this PR do and why? -->
13
13
 
14
- **Ticket**: [TICKET-XXX](./project/tickets/TICKET-XXX.json) <!-- Auto-filled by /create-pr -->
14
+ **Ticket**: [TICKET-XXX](./docs/runtime/project/tickets/TICKET-XXX.json) <!-- Auto-filled by /create-pr -->
15
15
 
16
16
  **Type**: <!-- feature | bugfix | hotfix | refactor | chore | docs -->
17
17
 
@@ -7,8 +7,8 @@
7
7
  /skills/ @tech-leads
8
8
  /templates/ @tech-leads
9
9
  /workflows/ @tech-leads
10
- /config/ @scrum-masters @tech-leads
11
- /project/ @scrum-masters @tech-leads
10
+ /docs/config/ @scrum-masters @tech-leads
11
+ /docs/runtime/project/ @scrum-masters @tech-leads
12
12
  /docs/runtime/adr/ @tech-leads
13
13
  /docs/project/specs/ @product-owners @tech-leads
14
14
  /docs/project/plans/ @tech-leads
@@ -1,3 +1,3 @@
1
1
  {
2
- "extends": "config/docs-policy.default.json"
2
+ "extends": "docs/config/docs-policy.default.json"
3
3
  }
@@ -1,18 +1,18 @@
1
- # Project-specific structure map copied by /setup-project into config/project-structure.yaml
1
+ # Project-specific structure map copied by /setup-project into docs/config/project-structure.yaml
2
2
  # Framework folders remain framework-only. Runtime state and project docs live outside them.
3
3
 
4
4
  state:
5
- root: "project"
6
- tickets: "project/tickets"
7
- backlog: "project/backlog"
8
- bugs: "project/bugs"
9
- sprints: "project/sprints"
10
- releases: "project/releases"
11
- metrics: "project/metrics"
12
- views: "project/views"
13
- test_runs: "project/test-runs"
14
- incidents: "project/incidents"
15
- audit_log: "project/audit-log.jsonl"
5
+ root: "docs/runtime/project"
6
+ tickets: "docs/runtime/project/tickets"
7
+ backlog: "docs/runtime/project/backlog"
8
+ bugs: "docs/runtime/project/bugs"
9
+ sprints: "docs/runtime/project/sprints"
10
+ releases: "docs/runtime/project/releases"
11
+ metrics: "docs/runtime/project/metrics"
12
+ views: "docs/runtime/project/views"
13
+ test_runs: "docs/runtime/project/test-runs"
14
+ incidents: "docs/runtime/project/incidents"
15
+ audit_log: "docs/runtime/project/audit-log.jsonl"
16
16
 
17
17
  project_docs:
18
18
  root: "docs/project"
@@ -36,9 +36,9 @@ runtime_docs:
36
36
  incidents: "docs/runtime/incidents"
37
37
 
38
38
  backlog:
39
- source_of_truth: "project/backlog/backlog.json"
40
- ticket_details: "project/tickets/TICKET-XXX.json"
41
- generated_views: "project/views"
39
+ source_of_truth: "docs/runtime/project/backlog/backlog.json"
40
+ ticket_details: "docs/runtime/project/tickets/TICKET-XXX.json"
41
+ generated_views: "docs/runtime/project/views"
42
42
 
43
43
  ticket_docs:
44
44
  spec_path_field: "spec_path"
@@ -53,8 +53,8 @@ refactor:
53
53
  requires_adr_when_architectural: true
54
54
 
55
55
  release:
56
- records: "project/releases/vX.Y.Z.json"
57
- schema: "config/release.schema.json"
56
+ records: "docs/runtime/project/releases/vX.Y.Z.json"
57
+ schema: "docs/config/release.schema.json"
58
58
  template: "templates/release/release-record-template.json"
59
59
  requires_rollback_verification: true
60
60
  requires_post_release_smoke: true
@@ -65,12 +65,12 @@ scripts:
65
65
  command_runner: "scripts/ai-core.sh"
66
66
  workflow_handlers: "scripts/workflow.sh"
67
67
  audit_validator: "scripts/validate-audit-log.sh"
68
- audit_log: "project/audit-log.jsonl"
68
+ audit_log: "docs/runtime/project/audit-log.jsonl"
69
69
 
70
70
  ci:
71
71
  governance_template: "templates/ci/ai-core-governance.yml"
72
72
  app_templates: "templates/ci"
73
73
 
74
74
  docs_policy:
75
- project_override: "config/docs-policy.json"
76
- default: "config/docs-policy.default.json"
75
+ project_override: "docs/config/docs-policy.json"
76
+ default: "docs/config/docs-policy.default.json"
@@ -367,5 +367,5 @@ DO NOT EDIT BELOW - auto-populated
367
367
  -->
368
368
 
369
369
  <!-- TEMPLATE_VERSION: 1.0.0 -->
370
- <!-- SCHEMA: config/bug.schema.json -->
370
+ <!-- SCHEMA: docs/config/bug.schema.json -->
371
371
  <!-- FILED_BY_AGENT: [agent-name] -->
@@ -378,4 +378,4 @@ DO NOT EDIT BELOW - auto-populated fields
378
378
  <!-- TEMPLATE_VERSION: 1.0.0 -->
379
379
  <!-- CREATED_BY_AGENT: business-analyst -->
380
380
  <!-- NEXT_AGENT: tech-lead -->
381
- <!-- SCHEMA: config/ticket.schema.json -->
381
+ <!-- SCHEMA: docs/config/ticket.schema.json -->
@@ -10,7 +10,7 @@ Make bugs reproducible, prioritized, fixed with regression coverage, and verifie
10
10
 
11
11
  1. Discovery
12
12
  - Any agent or user reports a defect with `/report-bug`.
13
- - Bug is created in `project/bugs/` with status `NEW` or `NEEDS_MORE_INFO`.
13
+ - Bug is created in `docs/runtime/project/bugs/` with status `NEW` or `NEEDS_MORE_INFO`.
14
14
 
15
15
  2. Triage
16
16
  - BA runs `/triage-bug` with Tech Lead and QA input.
@@ -46,8 +46,8 @@ Make bugs reproducible, prioritized, fixed with regression coverage, and verifie
46
46
 
47
47
  ## 📊 Artifacts
48
48
 
49
- - `project/bugs/BUG-XXX.json`
50
- - Linked ticket in `project/tickets/`
49
+ - `docs/runtime/project/bugs/BUG-XXX.json`
50
+ - Linked ticket in `docs/runtime/project/tickets/`
51
51
  - Verification report
52
52
  - Regression tests
53
53
 
@@ -82,7 +82,7 @@
82
82
  3. BA writes User Story (INVEST)
83
83
  4. BA writes ≥3 AC scenarios (Gherkin)
84
84
  5. BA creates `docs/project/specs/TICKET-XXX-<slug>.md`
85
- 6. BA creates `project/tickets/TICKET-XXX.json` with `spec_path`
85
+ 6. BA creates `docs/runtime/project/tickets/TICKET-XXX.json` with `spec_path`
86
86
  7. BA output HANDOFF → tech-lead
87
87
 
88
88
  ### Gates
@@ -181,7 +181,7 @@ Each requirement should finish in one session (< 30 minutes of BA work).
181
181
  - Sort by priority (MUST > SHOULD > COULD)
182
182
  - Pull tickets into sprint until capacity is reached (30 points default)
183
183
  - Assign tickets to sprint
184
- 3. Create `project/sprints/SPRINT-XXX.json`
184
+ 3. Create `docs/runtime/project/sprints/SPRINT-XXX.json`
185
185
 
186
186
  ### Gates
187
187
  - ✅ Total points ≤ team capacity
@@ -46,8 +46,8 @@ Ensure sprint commitments are realistic, tracked, and closed with factual metric
46
46
 
47
47
  ## 📊 Artifacts
48
48
 
49
- - `project/sprints/SPRINT-XXX.json`
50
- - `project/metrics/`
49
+ - `docs/runtime/project/sprints/SPRINT-XXX.json`
50
+ - `docs/runtime/project/metrics/`
51
51
  - Retrospective notes
52
52
  - Sprint report
53
53