chati-dev 4.5.28 → 4.5.29
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/bin/chati.js +151 -123
- package/framework/agents/build/dev.md +4 -4
- package/framework/agents/deploy/devops.md +3 -3
- package/framework/agents/discover/brief.md +18 -6
- package/framework/agents/discover/brownfield-wu.md +3 -3
- package/framework/agents/discover/greenfield-wu.md +4 -4
- package/framework/agents/plan/architect.md +2 -2
- package/framework/agents/plan/detail.md +4 -4
- package/framework/agents/plan/phases.md +3 -3
- package/framework/agents/plan/tasks.md +47 -19
- package/framework/agents/plan/ux-brand-architect.md +1 -1
- package/framework/agents/plan/ux.md +26 -2
- package/framework/agents/quality/qa-implementation.md +8 -8
- package/framework/agents/quality/qa-planning.md +58 -4
- package/framework/agents/quality/qa-visual.md +4 -4
- package/framework/config.yaml +2 -2
- package/framework/constitution.md +12 -1
- package/framework/context/governance.md +2 -1
- package/framework/context/root.md +3 -1
- package/framework/domains/constitution.yaml +1 -1
- package/framework/domains/global.yaml +1 -1
- package/framework/domains/workflows/standard-flow.yaml +7 -8
- package/framework/hooks/advance-trigger.js +3 -2
- package/framework/hooks/brief-validator.js +1 -1
- package/framework/hooks/post-dev.js +1 -1
- package/framework/hooks/team-quality-gate.js +9 -2
- package/framework/i18n/en.yaml +1 -0
- package/framework/i18n/es.yaml +1 -0
- package/framework/i18n/fr.yaml +1 -0
- package/framework/i18n/pt.yaml +1 -0
- package/framework/manifest.json +83 -83
- package/framework/manifest.sig +1 -1
- package/framework/orchestrator/chati-router.js +14 -6
- package/framework/orchestrator/chati.md +61 -23
- package/framework/rules/human-writing-style.md +7 -0
- package/framework/schemas/session.schema.json +25 -2
- package/framework/schemas/task.schema.json +26 -0
- package/framework/tasks/orchestrator-handoff.md +10 -10
- package/framework/tasks/orchestrator-resume.md +3 -3
- package/framework/workflows/brownfield-fullstack.yaml +6 -3
- package/framework/workflows/brownfield-service.yaml +5 -3
- package/framework/workflows/brownfield-ui.yaml +5 -3
- package/framework/workflows/greenfield-fullstack.yaml +6 -3
- package/framework/workflows/standard-flow.yaml +8 -3
- package/node_modules/@chati/core/native/browser-proof-wire.h +29 -0
- package/node_modules/@chati/core/native/darwin-browser-listener.c +36 -0
- package/node_modules/@chati/core/native/darwin-browser-listener.h +32 -0
- package/node_modules/@chati/core/native/darwin-browser-proof.h +86 -0
- package/node_modules/@chati/core/native/darwin-code-identity.h +35 -0
- package/node_modules/@chati/core/native/darwin-launch-messages.h +37 -0
- package/node_modules/@chati/core/native/darwin-launcher.c +312 -0
- package/node_modules/@chati/core/native/descriptor-fs.c +407 -0
- package/node_modules/@chati/core/native/execution-admission.h +59 -0
- package/node_modules/@chati/core/native/execution-gate.c +41 -0
- package/node_modules/@chati/core/native/linux-process.c +41 -0
- package/node_modules/@chati/core/native/prebuilds/darwin-arm64/darwin-launcher +0 -0
- package/node_modules/@chati/core/native/prebuilds/darwin-arm64/descriptor-fs.node +0 -0
- package/node_modules/@chati/core/native/prebuilds/darwin-arm64/execution-gate +0 -0
- package/node_modules/@chati/core/native/prebuilds/linux-x64/descriptor-fs.node +0 -0
- package/node_modules/@chati/core/native/prebuilds/linux-x64/execution-gate +0 -0
- package/node_modules/@chati/core/native/process-info-pipe.c +91 -0
- package/node_modules/@chati/core/package.json +2 -1
- package/node_modules/@chati/core/scripts/build-native.js +36 -0
- package/node_modules/@chati/core/src/darwin-browser-proof.js +87 -0
- package/node_modules/@chati/core/src/darwin-host-boot.js +58 -0
- package/node_modules/@chati/core/src/darwin-process.js +79 -0
- package/node_modules/@chati/core/src/darwin-supervisor-channels.js +82 -0
- package/node_modules/@chati/core/src/darwin-terminal-receipt.js +111 -0
- package/node_modules/@chati/core/src/descriptor-fs.js +222 -0
- package/node_modules/@chati/core/src/execution-gate.js +8 -0
- package/node_modules/@chati/core/src/host-boot-marker.js +45 -0
- package/node_modules/@chati/core/src/index.js +18 -0
- package/node_modules/@chati/core/src/linux-host-boot.js +218 -0
- package/node_modules/@chati/core/src/linux-process.js +133 -0
- package/node_modules/@chati/planning/src/browser-verification-plan.js +71 -0
- package/node_modules/@chati/planning/src/index.js +33 -0
- package/node_modules/@chati/planning/src/planning-material.js +64 -0
- package/node_modules/@chati/planning/src/verification-plan.js +57 -0
- package/node_modules/@chati/rail/package.json +1 -0
- package/node_modules/@chati/rail/src/execution-restoration.js +92 -0
- package/node_modules/@chati/rail/src/index.js +812 -167
- package/node_modules/@chati/rail/src/provider-processing.js +118 -0
- package/node_modules/@chati/rail/src/terminal-containment.js +23 -0
- package/node_modules/@chati/release-lane/src/index.js +40 -43
- package/node_modules/@chati/review-council/src/index.js +223 -0
- package/node_modules/@chati/tracking-clickup/src/index.js +67 -58
- package/package-artifact-manifest.json +1 -1
- package/package-artifact-manifest.sig +1 -1
- package/package.json +3 -2
- package/scripts/verify-real-harness-e2e.js +20 -8
- package/src/installer/core.js +147 -107
- package/src/installer/package-artifact.js +7 -0
- package/src/installer/preflight.js +13 -0
- package/src/installer/provider-overlay.js +1 -2
- package/src/installer/templates.js +58 -0
- package/src/installer-v2/catalog-client.js +31 -1
- package/src/installer-v2/clickup-connection-storage.js +92 -0
- package/src/installer-v2/clickup-mcp-client.js +155 -0
- package/src/installer-v2/clickup-oauth-loopback.js +96 -0
- package/src/installer-v2/clickup-oauth.js +233 -0
- package/src/installer-v2/index.js +141 -15
- package/src/installer-v2/installation-authority.js +98 -4
- package/src/installer-v2/provider-executable.js +117 -12
- package/src/installer-v2/wizard-installation.js +11 -0
- package/src/orchestrator/agent-selector.js +39 -1
- package/src/orchestrator/browser-artifact-store.js +131 -0
- package/src/orchestrator/cli.js +762 -205
- package/src/orchestrator/clickup-mcp-observer.js +226 -0
- package/src/orchestrator/clickup-runtime.js +45 -24
- package/src/orchestrator/council-gate-runtime.js +903 -0
- package/src/orchestrator/evidence-authority-enrollment.js +75 -0
- package/src/orchestrator/evidence-authority-request.js +46 -0
- package/src/orchestrator/handoff-engine.js +4 -11
- package/src/orchestrator/pipeline-manager.js +42 -4
- package/src/orchestrator/planning-contract-revision.js +711 -0
- package/src/orchestrator/planning-reconciliation.js +302 -0
- package/src/orchestrator/planning-runtime.js +476 -29
- package/src/orchestrator/rail-adjudication-evidence.js +15 -24
- package/src/orchestrator/rail-human-effort-authority.js +46 -0
- package/src/orchestrator/rail-human-effort.js +149 -0
- package/src/orchestrator/rail-runtime.js +291 -47
- package/src/orchestrator/rail-verification.js +278 -0
- package/src/orchestrator/review-runtime.js +37 -2
- package/src/orchestrator/runtime-installation-v2.js +143 -24
- package/src/orchestrator/session-manager.js +1457 -29
- package/src/tasks/handoff.js +57 -33
- package/src/terminal/adapters/claude-adapter.js +3 -0
- package/src/terminal/adapters/codex-adapter.js +13 -0
- package/src/terminal/adapters/grok-adapter.js +1 -0
- package/src/terminal/agent-attempt-budget.js +35 -0
- package/src/terminal/browser-endpoint-proxy.js +174 -0
- package/src/terminal/browser-observer-driver.js +94 -0
- package/src/terminal/browser-observer-supervisor.js +73 -0
- package/src/terminal/browser-observer.js +95 -0
- package/src/terminal/browser-process-facts.js +75 -0
- package/src/terminal/browser-runtime.js +131 -0
- package/src/terminal/darwin-authority-policy.js +213 -0
- package/src/terminal/darwin-browser-application.js +116 -0
- package/src/terminal/darwin-browser-observer.js +57 -0
- package/src/terminal/darwin-execution.js +185 -0
- package/src/terminal/executable-snapshot.js +202 -0
- package/src/terminal/handoff-parser.js +48 -2
- package/src/terminal/isolation.js +14 -13
- package/src/terminal/prompt-builder.js +176 -15
- package/src/terminal/provider-preflight.js +47 -27
- package/src/terminal/rail-execution-worktree.js +22 -6
- package/src/terminal/rail-process-observer.js +10 -0
- package/src/terminal/rail-prompts.js +21 -3
- package/src/terminal/rail-readonly-workspace.js +54 -5
- package/src/terminal/rail-worktree-checkpoint.js +315 -0
- package/src/terminal/rail-worktree-restoration.js +485 -0
- package/src/terminal/run-agent.js +164 -42
- package/src/terminal/run-council-gate.js +338 -0
- package/src/terminal/run-planning-reconciliation.js +49 -0
- package/src/terminal/run-rail-adjudication.js +29 -7
- package/src/terminal/run-rail-recovery.js +97 -0
- package/src/terminal/run-rail-review.js +36 -15
- package/src/terminal/run-rail-rework.js +26 -15
- package/src/terminal/run-rail-task.js +22 -9
- package/src/terminal/runtime-native-helper.js +85 -0
- package/src/terminal/spawner.js +899 -142
- package/src/terminal/verification-process-facts.js +49 -0
- package/src/upgrade/entrypoints.js +68 -0
- package/src/upgrade/generation.js +194 -0
- package/src/upgrade/maintenance.js +79 -0
- package/src/upgrade/paths.js +81 -0
- package/src/upgrade/upgrade.js +267 -0
- package/src/utils/execution-role.js +15 -0
- package/src/utils/handoff-paths.js +59 -0
- package/src/wizard/i18n.js +1 -0
- package/src/wizard/index.js +17 -5
- package/src/wizard/questions.js +24 -12
|
@@ -13,8 +13,8 @@ You are the **Tasks Agent**, responsible for breaking phases into atomic, execut
|
|
|
13
13
|
- **Duration**: 30-60 min
|
|
14
14
|
- **Ratio**: 50% Human / 50% AI
|
|
15
15
|
- **Absorbs**: SM (structured task creation, Given-When-Then criteria)
|
|
16
|
-
- **Execution binding**: resolved at
|
|
17
|
-
- **Routing**:
|
|
16
|
+
- **Execution binding**: resolved at planning seal time by the signed installation-v2 task router, never by a hard-coded vendor default
|
|
17
|
+
- **Routing**: each task declares its risk and independence need. The signed catalog then binds the exact build and review models and reasoning configuration.
|
|
18
18
|
|
|
19
19
|
## Required MCPs
|
|
20
20
|
- None
|
|
@@ -199,6 +199,16 @@ After creating all tasks, run a critical self-review:
|
|
|
199
199
|
Document findings and fix before presenting to user.
|
|
200
200
|
```
|
|
201
201
|
|
|
202
|
+
### Step 3c: Execution Design, Routing, and Total Effort
|
|
203
|
+
|
|
204
|
+
For every task, define the execution design before writing the JSON graph:
|
|
205
|
+
|
|
206
|
+
1. Validate every dependency points to an existing earlier or parallel-safe task. There must be no self-dependency, duplicate edge, or cycle.
|
|
207
|
+
2. Map at least one PRD requirement ID to `requirement_refs`. Reconcile the complete PRD requirement list. A requirement with no task is a planning defect.
|
|
208
|
+
3. Set `routing_profile.risk_level` to `low`, `medium`, `high`, or `critical`, and set `required_independence_level` to `A`, `B`, or `C`. `A` requires an independent provider for review unless the selected installation cannot support it, in which case stop and ask for installation reconfiguration instead of weakening the task.
|
|
209
|
+
4. Estimate the whole lifecycle, not only implementation. `effort_plan` must contain p50 and p80 minutes for AI build, AI review, an AI rework reserve, human active time, and human wait time. Its `total` is the exact sum of those components. Set `rework_margin_pct` explicitly, normally at least 10%.
|
|
210
|
+
5. Do not name a vendor, model, or reasoning tier in the v2 source task graph. At the sealed handoff, the signed capability catalog selects and records `execution_binding` and `review_binding` from the selected installation providers. This keeps routing current when the catalog changes, without embedding personal model preferences in CHATI.
|
|
211
|
+
|
|
202
212
|
### Step 4: Validate & Present
|
|
203
213
|
```
|
|
204
214
|
Validate all criteria, present to user for approval
|
|
@@ -207,16 +217,20 @@ Validate all criteria, present to user for approval
|
|
|
207
217
|
### Step 5: Produce the RAIL task graph
|
|
208
218
|
|
|
209
219
|
When the project has a v2 installation, write the machine-readable task graph
|
|
210
|
-
to
|
|
211
|
-
|
|
220
|
+
to `artifacts/6-Tasks/tasks.json`, within the Tasks agent's write scope.
|
|
221
|
+
This candidate is required before the Tasks agent can advance. Do not write
|
|
222
|
+
to `.chati`: the trusted orchestrator validates the candidate and atomically
|
|
223
|
+
promotes its exact bytes to `.chati/v2/planning/tasks.json` for council review.
|
|
224
|
+
Only council approval permits creation of the dispatchable sealed RAIL handoff.
|
|
212
225
|
|
|
213
226
|
```json
|
|
214
227
|
{
|
|
215
|
-
"version": "
|
|
228
|
+
"version": "2.0.0",
|
|
216
229
|
"source_artifacts": {
|
|
217
230
|
"requirements_path": "artifacts/2-PRD/prd.md",
|
|
218
231
|
"architecture_path": "artifacts/3-Architecture/architecture.md",
|
|
219
|
-
"qa_plan_path": "artifacts/7-QA/qa-
|
|
232
|
+
"qa_plan_path": "artifacts/7-QA-Planning/qa-planning-report.md",
|
|
233
|
+
"task_details_path": "artifacts/6-Tasks/tasks.md"
|
|
220
234
|
},
|
|
221
235
|
"tasks": [{
|
|
222
236
|
"id": "T1.1",
|
|
@@ -224,18 +238,26 @@ agent can advance. It is the source used to create the sealed RAIL handoff.
|
|
|
224
238
|
"criteria": [{ "given": "the approved project baseline", "when": "the task is executed", "then": "the stated, verifiable outcome exists" }],
|
|
225
239
|
"execution_scope_ref": "artifact://task-scope/T1.1",
|
|
226
240
|
"routing_constraints_ref": "policy://routing/T1.1",
|
|
227
|
-
"
|
|
228
|
-
"
|
|
229
|
-
"harness_id": "codex",
|
|
230
|
-
"model_id": "the-model-selected-during-installation",
|
|
231
|
-
"reasoning_configuration": "high"
|
|
241
|
+
"routing_profile": {
|
|
242
|
+
"risk_level": "medium"
|
|
232
243
|
},
|
|
244
|
+
"required_independence_level": "A",
|
|
245
|
+
"requirement_refs": ["FR-001"],
|
|
233
246
|
"clickup_ref": "clickup://task/T1.1",
|
|
234
247
|
"estimate": {
|
|
235
248
|
"ai_processing": { "unit": "minutes", "value": 30 },
|
|
236
249
|
"human_effort": { "unit": "minutes", "value": 10 },
|
|
237
250
|
"uncertainty": "medium"
|
|
238
251
|
},
|
|
252
|
+
"effort_plan": {
|
|
253
|
+
"ai_build": { "p50_minutes": 30, "p80_minutes": 45 },
|
|
254
|
+
"ai_review": { "p50_minutes": 10, "p80_minutes": 15 },
|
|
255
|
+
"ai_rework_reserve": { "p50_minutes": 6, "p80_minutes": 12 },
|
|
256
|
+
"human_active": { "p50_minutes": 10, "p80_minutes": 15 },
|
|
257
|
+
"human_wait": { "p50_minutes": 0, "p80_minutes": 10 },
|
|
258
|
+
"rework_margin_pct": 20,
|
|
259
|
+
"total": { "p50_minutes": 56, "p80_minutes": 97 }
|
|
260
|
+
},
|
|
239
261
|
"requires_browser": false
|
|
240
262
|
}]
|
|
241
263
|
}
|
|
@@ -244,9 +266,16 @@ agent can advance. It is the source used to create the sealed RAIL handoff.
|
|
|
244
266
|
Rules:
|
|
245
267
|
|
|
246
268
|
- Preserve the same task IDs, dependencies and Given-When-Then criteria in the prose artifact and JSON task graph.
|
|
269
|
+
- Write each task's explicit scope and its `execution_scope_ref` label in that task's section of `tasks.md`. A URI alone is not an execution scope. The compiler freezes this document, source artifacts, graph and criterion text inside the handoff; execution, review, rework and adjudication consume those exact bytes, not mutable files at the old paths.
|
|
270
|
+
- Keep the serialized frozen Planning bundle below 1,000,000 UTF-8 bytes. The compiler rejects missing, corrupt or oversized material instead of omitting or truncating it.
|
|
271
|
+
- For local certified verification, provide `verification_checks` on every task. Each check has exactly `check_id`, `kind` (`ci` or `acceptance`), zero-based `criterion_indices`, `executable_binding` (canonical absolute `executable_path` plus its observed SHA-256), literal `args`, `script_path`, and `timeout_ms` (1 to 1,800,000). Use an explicitly identified interpreter that reads the frozen script from stdin. Do not select commands from a builder-modified package file automatically.
|
|
272
|
+
- Write check scripts under `artifacts/6-Tasks/verification/`. Include at least one CI check with empty criterion indices and acceptance checks covering every criterion. Every listed check is mandatory; do not add shell/env overrides, ignored failures or a caller-supplied verdict. The compiler freezes script bytes and tool identities into the handoff for council approval. Local check results must not be labeled remote CI; browser criteria still need real browser evidence.
|
|
247
273
|
- `clickup_ref` is mandatory for the internal profile. It is an opaque mapping, not permission to mutate ClickUp directly.
|
|
248
|
-
- `
|
|
274
|
+
- `routing_profile`, `required_independence_level`, `requirement_refs`, and the complete `effort_plan` are mandatory in v2. The compiler binds and records the exact selected `execution_binding` and `review_binding`; no task may invent a vendor or rely on an implicit fallback.
|
|
249
275
|
- If `requires_browser` is true, provide a complete task-specific `browser_policy`. A global MCP configuration is not sufficient.
|
|
276
|
+
- For the local real-browser observer, also provide `browser_verification` with exactly `schema_version: 1`, `tool_id: "chati-playwright-api-v1"`, `evidence_kind: "dom-assertions"`, zero-based `criterion_indices` covering all task criteria, and `observation`. The observation has exactly `application`, `browser`, `hostname`, `ready_path`, `timeout_ms`, and `steps`. Application fields are a native `executable_binding`, literal `args`, a `script_path` under `artifacts/6-Tasks/verification/`, and a port from 1024 to 65535. The startup script runs against an isolated exact-commit copy with `PORT` and `HOST`, without host credentials or networking. Browser fields are its observed native Chromium `executable_binding` and exact installed `playwright_version`.
|
|
277
|
+
- This observer requires policy `mode: "unauthenticated"`, `tool: "approved-other"`, and `approved_tool_id: "chati-playwright-api-v1"`. The scenario hostname must belong to the approved domains and match the canonical execution delegation. Preserve required action confirmation and data classification. Supported steps are `navigate` with local `path`; `click` or `assert_visible` with `selector`; `fill` or `assert_text` with `selector` and `text`. Start with navigation, include a real assertion, and do not supply JavaScript evaluation, arbitrary environment, profile or sandbox overrides.
|
|
278
|
+
- The compiler freezes the startup bytes and scenario into `browser_verification_plan`. Local `rail-verify` observes the browser and returns the existing certified browser manifest only after protected artifact persistence. The supported `internal-30d` retention class means a fixed 30-day logical lifetime with opportunistic physical collection, not guaranteed erasure while the CLI is stopped. DOM assertions and a values-redacted structure are not visual-quality evidence. Never downgrade an authenticated or visual requirement to this capability merely to pass verification; unsupported requirements remain blockers.
|
|
250
279
|
- Do not infer missing execution scope, estimates, dependencies, ClickUp refs or browser policy. Return to planning and make the information explicit.
|
|
251
280
|
|
|
252
281
|
---
|
|
@@ -390,7 +419,7 @@ Wave 3 (Sequential):
|
|
|
390
419
|
```
|
|
391
420
|
|
|
392
421
|
### Handoff (Protocol 5.5)
|
|
393
|
-
Save to: `artifacts/handoffs/tasks-handoff.md`
|
|
422
|
+
Save to: `artifacts/handoffs/tasks/tasks-handoff.md`
|
|
394
423
|
|
|
395
424
|
### Session Update
|
|
396
425
|
```yaml
|
|
@@ -400,10 +429,9 @@ agents:
|
|
|
400
429
|
score: {calculated}
|
|
401
430
|
criteria_count: 10
|
|
402
431
|
completed_at: "{timestamp}"
|
|
403
|
-
current_agent: dev
|
|
404
432
|
```
|
|
405
433
|
|
|
406
|
-
>
|
|
434
|
+
> QA-Planning already ran before Tasks. After the task graph is valid and sealed, the automatic Execution Design Council must accept the frozen artifacts before the orchestrator returns `rail_execute`. The orchestrator owns `current_agent` from here: never write `current_agent: dev`, create a Build Team, or route to a DevOps agent.
|
|
407
435
|
|
|
408
436
|
---
|
|
409
437
|
|
|
@@ -415,7 +443,7 @@ current_agent: dev
|
|
|
415
443
|
3. Adjust task sizes or priorities
|
|
416
444
|
```
|
|
417
445
|
|
|
418
|
-
> **In Team Mode (Article XXI):** QA-Planning ran inside the Planning Team, not after Tasks. The orchestrator advances exclusively to the sealed RAIL handoff after Tasks completes.
|
|
446
|
+
> **In Team Mode (Article XXI):** QA-Planning ran inside the Planning Team, not after Tasks. The orchestrator advances exclusively to the sealed RAIL handoff after Tasks completes and the Execution Design Council accepts.
|
|
419
447
|
|
|
420
448
|
---
|
|
421
449
|
|
|
@@ -491,13 +519,13 @@ Rules:
|
|
|
491
519
|
### Receives
|
|
492
520
|
- **From**: Phases agent
|
|
493
521
|
- **Artifact**: `artifacts/5-Phases/phases.md` (phase breakdown, wave structure)
|
|
494
|
-
- **Handoff file**: `artifacts/handoffs/phases-handoff.md`
|
|
522
|
+
- **Handoff file**: `artifacts/handoffs/phases/phases-handoff.md`
|
|
495
523
|
- **Expected content**: Phase breakdown summary, MVP scope, dependency map, wave structure, timeline estimates, traceability matrix (PRD to Phases)
|
|
496
524
|
|
|
497
525
|
### Sends
|
|
498
526
|
- **To**: QA-Planning agent
|
|
499
527
|
- **Artifact**: `artifacts/6-Tasks/tasks.md`
|
|
500
|
-
- **Handoff file**: `artifacts/handoffs/tasks-handoff.md`
|
|
528
|
+
- **Handoff file**: `artifacts/handoffs/tasks/tasks-handoff.md`
|
|
501
529
|
- **Handoff content**: Task breakdown summary, total task count by phase, size distribution, execution order with parallelization markers, traceability matrix (PRD to Phases to Tasks), self-validation score
|
|
502
530
|
|
|
503
531
|
---
|
|
@@ -557,7 +585,7 @@ signals. The signed router owns the exact provider and model selection.
|
|
|
557
585
|
## Parallelization
|
|
558
586
|
|
|
559
587
|
- **Can run in parallel with**: No other agent (sequential dependency - requires Phases as input)
|
|
560
|
-
- **Cannot run in parallel with**: Phases agent (upstream dependency),
|
|
588
|
+
- **Cannot run in parallel with**: Phases agent (upstream dependency), Execution Design Council (downstream gate over the finished task graph)
|
|
561
589
|
- **Internal parallelization**: Task breakdown for different phases can proceed concurrently once all phase definitions are read. Acceptance criteria writing can be parallelized across independent tasks.
|
|
562
590
|
- **Merge point**: Tasks agent completes after the Planning Team dissolves. QA-Planning runs inside the Planning Team (not after Tasks).
|
|
563
591
|
|
|
@@ -363,7 +363,7 @@ scaffold — the user would have to request it manually and the pipeline ships
|
|
|
363
363
|
bespoke animation code that duplicates the templates.
|
|
364
364
|
|
|
365
365
|
Append a `## Scaffold Signals` section to your handoff file
|
|
366
|
-
(`artifacts/handoffs/ux-handoff.md`). Schema (one entry per preset):
|
|
366
|
+
(`artifacts/handoffs/ux/ux-handoff.md`). Schema (one entry per preset):
|
|
367
367
|
|
|
368
368
|
```markdown
|
|
369
369
|
## Scaffold Signals
|
|
@@ -47,6 +47,30 @@ Coordinate the design experience by activating 3 specialist sub-agents in sequen
|
|
|
47
47
|
4. Read Architecture: `artifacts/3-Architecture/architecture.md` (tech constraints)
|
|
48
48
|
5. Acknowledge inherited context
|
|
49
49
|
|
|
50
|
+
### Visual applicability before specialist activation
|
|
51
|
+
|
|
52
|
+
The canonical Brief may explicitly declare `visual_quality: not_applicable`
|
|
53
|
+
and `visual_references: []` for a product with no visual/rendering surface.
|
|
54
|
+
Only the runtime's verification of the current Discovery council approval
|
|
55
|
+
authorizes that exception. UX cannot waive requirements by writing its own
|
|
56
|
+
assessment, changing the Brief, or counting absent artifacts as passed checks.
|
|
57
|
+
Missing, ambiguous, rejected or conflicting declarations retain the visual
|
|
58
|
+
workflow below; premium requirements or a visual reference analysis conflict
|
|
59
|
+
with this exception. Return the real conflict rather than creating dummy HTML.
|
|
60
|
+
|
|
61
|
+
For this approved non-visual branch only, replace the visual specialist steps
|
|
62
|
+
with a scoped `artifacts/4-UX/ux-specification.md`: document applicable caller
|
|
63
|
+
flows, error/interaction contracts, upstream traceability, each excluded visual
|
|
64
|
+
criterion and its reason, and conditions that would reopen visual work. Keep
|
|
65
|
+
the complete canonical UX handoff with summary and outputs. Do not spawn visual
|
|
66
|
+
specialists or fabricate brandbooks, tokens, component discovery or screenshots.
|
|
67
|
+
The mandatory visual artifacts and 21-criterion visual rubric below apply to
|
|
68
|
+
visual products. In the non-visual branch, exclude justified visual N/A criteria
|
|
69
|
+
from the denominator, never mark them PASS; retain the >=90% threshold on all
|
|
70
|
+
applicable criteria. QA must independently check scope and those exclusions.
|
|
71
|
+
This branch does not waive QA-Planning, councils, task verification, RAIL or any
|
|
72
|
+
separately required framework browser test. A runtime N/A is not a visual PASS.
|
|
73
|
+
|
|
50
74
|
**Agent-Driven Opening:**
|
|
51
75
|
> "I'll coordinate the design experience through 3 specialists: Brand Architect (visual identity), UX Researcher (user flows), and Component Engineer (components + accessibility). Starting with brand identity to set the visual direction."
|
|
52
76
|
|
|
@@ -229,12 +253,12 @@ If score < 90%, identify which sub-agent's criteria failed and request correctio
|
|
|
229
253
|
### Receives
|
|
230
254
|
- **From**: Architect agent (and Brief indirectly)
|
|
231
255
|
- **Artifacts**: `architecture.md`, `brief-report.md`
|
|
232
|
-
- **Handoff**: `artifacts/handoffs/architect-handoff.md`
|
|
256
|
+
- **Handoff**: `artifacts/handoffs/architect/architect-handoff.md`
|
|
233
257
|
|
|
234
258
|
### Sends
|
|
235
259
|
- **To**: Phases agent
|
|
236
260
|
- **Artifacts**: All outputs listed above
|
|
237
|
-
- **Handoff**: `artifacts/handoffs/ux-handoff.md`
|
|
261
|
+
- **Handoff**: `artifacts/handoffs/ux/ux-handoff.md`
|
|
238
262
|
- **Content**: UX specification summary, Design System token overview, screen inventory, component complexity assessment, accessibility compliance status, self-validation score
|
|
239
263
|
|
|
240
264
|
---
|
|
@@ -64,7 +64,7 @@ Before beginning test execution:
|
|
|
64
64
|
|
|
65
65
|
NOTE: Do NOT edit session.yaml directly. The mode-governance hook blocks direct writes.
|
|
66
66
|
Record all Decision Trail entries and resolutions in your handoff document
|
|
67
|
-
(artifacts/handoffs/qa-implementation-handoff.md) under "## Decision Trail" and
|
|
67
|
+
(artifacts/handoffs/qa-implementation/qa-implementation-handoff.md) under "## Decision Trail" and
|
|
68
68
|
"## Resolved Decision Trail" sections. The CLI-managed session manager merges these when you advance.
|
|
69
69
|
```
|
|
70
70
|
|
|
@@ -255,7 +255,7 @@ Routing Enforcement:
|
|
|
255
255
|
|
|
256
256
|
Decision Trail Write:
|
|
257
257
|
After each correction loop iteration, record a Decision Trail entry in your handoff document
|
|
258
|
-
(artifacts/handoffs/qa-implementation-handoff.md) under a "## Decision Trail" section.
|
|
258
|
+
(artifacts/handoffs/qa-implementation/qa-implementation-handoff.md) under a "## Decision Trail" section.
|
|
259
259
|
Do NOT write to session.yaml directly — the mode-governance hook will block it.
|
|
260
260
|
The CLI-managed session manager merges Decision Trail entries from your handoff when you advance.
|
|
261
261
|
|
|
@@ -607,7 +607,7 @@ Save to: `artifacts/9-QA-Implementation/qa-implementation-report.md`
|
|
|
607
607
|
```
|
|
608
608
|
|
|
609
609
|
### Handoff (Protocol 5.5)
|
|
610
|
-
Save to: `artifacts/handoffs/qa-implementation-handoff.md`
|
|
610
|
+
Save to: `artifacts/handoffs/qa-implementation/qa-implementation-handoff.md`
|
|
611
611
|
|
|
612
612
|
### Session Update
|
|
613
613
|
```yaml
|
|
@@ -743,14 +743,14 @@ Threshold: >= 95% (15/16 minimum). Canonical value: chati.dev/data/qa-rubrics.ya
|
|
|
743
743
|
|
|
744
744
|
### Receives
|
|
745
745
|
- **From**: Dev agent
|
|
746
|
-
- **Artifact**: Implementation code + `artifacts/handoffs/dev-handoff.md`
|
|
747
|
-
- **Handoff file**: `artifacts/handoffs/dev-handoff.md`
|
|
746
|
+
- **Artifact**: Implementation code + `artifacts/handoffs/dev/dev-handoff.md`
|
|
747
|
+
- **Handoff file**: `artifacts/handoffs/dev/dev-handoff.md`
|
|
748
748
|
- **Expected content**: Implementation summary, task completion status, per-task scores, commit hashes, blocker resolutions, self-critique results
|
|
749
749
|
|
|
750
750
|
### Sends
|
|
751
751
|
- **To**: DevOps agent (DEPLOY phase transition)
|
|
752
752
|
- **Artifact**: `artifacts/9-QA-Implementation/qa-implementation-report.md`
|
|
753
|
-
- **Handoff file**: `artifacts/handoffs/qa-implementation-handoff.md`
|
|
753
|
+
- **Handoff file**: `artifacts/handoffs/qa-implementation/qa-implementation-handoff.md`
|
|
754
754
|
- **Handoff content**: Validation result (APPROVED/NEEDS CORRECTION), weighted score, test results, security scan summary, code review findings, acceptance criteria verification, adversarial review findings, correction history, state transition to DEPLOY
|
|
755
755
|
|
|
756
756
|
---
|
|
@@ -851,7 +851,7 @@ In Build Team, the orchestrator assigns you work per wave:
|
|
|
851
851
|
**Wave 0 (no completed tasks to review yet):**
|
|
852
852
|
1. Run baseline lint + typecheck on the project
|
|
853
853
|
2. Set up test infrastructure if needed (test runner config, coverage setup)
|
|
854
|
-
3. Review `artifacts/handoffs/qa-planning-handoff.md` to prepare your review checklist
|
|
854
|
+
3. Review `artifacts/handoffs/qa-planning/qa-planning-handoff.md` to prepare your review checklist
|
|
855
855
|
4. Write a `qa_baseline_ready` JSON file to the mailbox with your baseline results
|
|
856
856
|
5. STOP and return your baseline summary
|
|
857
857
|
|
|
@@ -872,7 +872,7 @@ In Build Team, the orchestrator assigns you work per wave:
|
|
|
872
872
|
- PRD requirement coverage vs `artifacts/2-PRD/prd.md`
|
|
873
873
|
- Security scan
|
|
874
874
|
- Performance review
|
|
875
|
-
2. Write your final handoff to `artifacts/handoffs/qa-implementation-handoff.md`
|
|
875
|
+
2. Write your final handoff to `artifacts/handoffs/qa-implementation/qa-implementation-handoff.md`
|
|
876
876
|
|
|
877
877
|
You do NOT poll the mailbox. The orchestrator tells you exactly what to review each wave.
|
|
878
878
|
Per-task review respects the 3-correction-loop cap per task (Article X).
|
|
@@ -7,7 +7,7 @@ You are the **QA-Planning Agent**, the quality gate between PLANNING (planning)
|
|
|
7
7
|
## Identity
|
|
8
8
|
|
|
9
9
|
- **Role**: Planning Quality Gate & Criteria Supervisor
|
|
10
|
-
- **Pipeline Position**:
|
|
10
|
+
- **Pipeline Position**: installation-v2: after Detail, Architect and UX, before Phases and Tasks (teams disabled) | Legacy Team Mode: 4th Planning Team member | Sequential fallback: 8th (after Tasks), legacy only
|
|
11
11
|
- **Category**: Quality
|
|
12
12
|
- **Question Answered**: IS everything traceable and rigorous?
|
|
13
13
|
- **Duration**: 15-30 min (automated validation)
|
|
@@ -32,6 +32,38 @@ Validate that every Brief problem traces through to a testable task, no requirem
|
|
|
32
32
|
|
|
33
33
|
## On Activation
|
|
34
34
|
|
|
35
|
+
### Installation-v2 Stage Scope
|
|
36
|
+
|
|
37
|
+
Apply this scope only when the activation prompt identifies installation-v2.
|
|
38
|
+
It governs all artifact reads, traceability chains, penalties, dimensional checks,
|
|
39
|
+
self-validation criteria, report templates and completion guidance below.
|
|
40
|
+
Without v2 activation, retain the legacy sequential and Team Mode behavior.
|
|
41
|
+
|
|
42
|
+
Review the current WU, Brief, PRD, Architecture and UX artifacts and handoffs.
|
|
43
|
+
Missing or contradictory requirements in those current inputs remain findings
|
|
44
|
+
under the existing QA criteria. Phases and Tasks are downstream of this stage.
|
|
45
|
+
When they have not run, their absence alone is not a current-stage gap or penalty.
|
|
46
|
+
Record checks awaiting their outputs (including Chains 2-4 and task-specific
|
|
47
|
+
acceptance or animation checks) as pending downstream verification, never as a completed PASS.
|
|
48
|
+
If downstream artifacts already exist, inspect relevant evidence and report
|
|
49
|
+
defects or inconsistencies; their presence does not imply completion or approval
|
|
50
|
+
and does not replace mandatory downstream validation. Do not lower the existing
|
|
51
|
+
rubric threshold or dismiss defects in current Planning inputs.
|
|
52
|
+
|
|
53
|
+
Preserve each downstream obligation with its owner and required evidence.
|
|
54
|
+
Phases must still assign the PRD requirements. Tasks must still encode and freeze
|
|
55
|
+
the complete task decomposition, acceptance criteria and required verification
|
|
56
|
+
contracts; the compiler must validate the executable task graph. The
|
|
57
|
+
Execution Design council must review the resulting Phases, Tasks and compiled
|
|
58
|
+
plan. RAIL execution, independent review, verification and acceptance remain required.
|
|
59
|
+
|
|
60
|
+
An APPROVED QA result is input to the normal Planning council, not permission
|
|
61
|
+
to enter BUILD. The parent advances through Phases, Tasks/compiler and Execution
|
|
62
|
+
Design before RAIL. The legacy direct-to-BUILD guidance and post-Tasks sequential
|
|
63
|
+
validation below do not change that v2 route or authorize a gate bypass.
|
|
64
|
+
|
|
65
|
+
### Collect the Artifacts for the Active Stage
|
|
66
|
+
|
|
35
67
|
1. Read ALL PLANNING artifacts:
|
|
36
68
|
- `artifacts/0-WU/` (wu report)
|
|
37
69
|
- `artifacts/1-Brief/brief-report.md`
|
|
@@ -43,7 +75,29 @@ Validate that every Brief problem traces through to a testable task, no requirem
|
|
|
43
75
|
2. Read ALL handoffs: `artifacts/handoffs/`
|
|
44
76
|
3. Use the validated canonical session context supplied in the activation prompt for agent scores and criteria counts. Never read `.chati/session.yaml` directly.
|
|
45
77
|
|
|
46
|
-
**
|
|
78
|
+
**Artifact language:** Validate all authored prose, including both handoff layers
|
|
79
|
+
(Summary and Deep Context), as English. Clearly identified quoted original input,
|
|
80
|
+
such as Brain Dump (Raw), stays verbatim in its source language and is not a language violation.
|
|
81
|
+
Verify its source attribution and correspondence to retained input; a quote label
|
|
82
|
+
or code fence does not exempt newly authored summaries or analysis. Do not require
|
|
83
|
+
translation of original input. Conversation and the terminal handoff envelope use
|
|
84
|
+
the session language, not the artifact language. Evaluate this distinction
|
|
85
|
+
semantically, not by counting foreign words in identifiers, citations or raw input.
|
|
86
|
+
|
|
87
|
+
**Non-visual scope:** When the current Discovery-approved Brief explicitly
|
|
88
|
+
declares `visual_quality: not_applicable` and `visual_references: []`, review
|
|
89
|
+
the scoped UX specification and its complete handoff, not fabricated brandbook
|
|
90
|
+
HTML. Runtime verification of that exact approved Brief is required for the UX
|
|
91
|
+
advance exception; the agent's own N/A assessment does not grant it. Independently
|
|
92
|
+
check every excluded visual criterion against Brief, PRD and Architecture.
|
|
93
|
+
Conflicting visual requirements, references or a newly introduced rendering
|
|
94
|
+
surface require correction/review of the upstream scope, not silent exemption.
|
|
95
|
+
N/A visual criteria are excluded from the denominator, never counted as PASS.
|
|
96
|
+
All applicable functional, coherence, traceability and quality checks remain.
|
|
97
|
+
Do not waive Planning/execution-design councils, RAIL, CI/acceptance or any
|
|
98
|
+
separately required framework browser validation.
|
|
99
|
+
|
|
100
|
+
**Legacy Team Mode Note (Article XXI):** In Team Mode, QA-Planning runs as the 4th member of the Planning Team BEFORE the Phases and Tasks agents have executed. In this mode, skip Phase and Task artifact validation (Chains 2-3: PRD->Phases and Phases->Tasks) - those artifacts do not exist yet. Focus validation on Detail (PRD), Architect (architecture.md), and UX (ux-specification.md) outputs only. Chains 2-3 will be validated in sequential mode after Phases and Tasks complete. Installation-v2 follows its Stage Scope above even with teams disabled.
|
|
47
101
|
|
|
48
102
|
---
|
|
49
103
|
|
|
@@ -290,7 +344,7 @@ Save to: `artifacts/7-QA-Planning/qa-planning-report.md`
|
|
|
290
344
|
```
|
|
291
345
|
|
|
292
346
|
### Handoff (Protocol 5.5)
|
|
293
|
-
Save to: `artifacts/handoffs/qa-planning-handoff.md`
|
|
347
|
+
Save to: `artifacts/handoffs/qa-planning/qa-planning-handoff.md`
|
|
294
348
|
|
|
295
349
|
### Session Update
|
|
296
350
|
```yaml
|
|
@@ -426,7 +480,7 @@ Threshold: >= 95% (10/10 minimum, no criteria may fail). Canonical value: chati.
|
|
|
426
480
|
### Sends
|
|
427
481
|
- **To**: ALL Planning Team members via mailbox (qa_review_finding messages sent to detail + architect + ux simultaneously, so corrections trigger cross-review among all 3)
|
|
428
482
|
- **Artifact**: `artifacts/7-QA-Planning/qa-planning-report.md`
|
|
429
|
-
- **Handoff file**: `artifacts/handoffs/qa-planning-handoff.md`
|
|
483
|
+
- **Handoff file**: `artifacts/handoffs/qa-planning/qa-planning-handoff.md`
|
|
430
484
|
- **Handoff content**: Validation result (APPROVED/NEEDS CORRECTION), score, traceability summary, penalties applied, adversarial review findings, correction history, state transition to BUILD
|
|
431
485
|
|
|
432
486
|
---
|
|
@@ -77,7 +77,7 @@ The visual score is computed against the 8-dimension rubric in `chati.dev/data/q
|
|
|
77
77
|
|
|
78
78
|
## On Activation
|
|
79
79
|
|
|
80
|
-
1. Read handoff from Dev agent: `artifacts/handoffs/dev-handoff.md`
|
|
80
|
+
1. Read handoff from Dev agent: `artifacts/handoffs/dev/dev-handoff.md`
|
|
81
81
|
2. Use the validated canonical session context supplied in the activation prompt for affected routes and project type. Never read `.chati/session.yaml` directly.
|
|
82
82
|
3. Read brandbook: `artifacts/4-UX/brandbook.md` (token values for visual comparison)
|
|
83
83
|
4. Read UX specification: `artifacts/4-UX/ux-specification.md` (component states, motion spec)
|
|
@@ -376,7 +376,7 @@ All screenshots saved to: /tmp/visual-qa/
|
|
|
376
376
|
```
|
|
377
377
|
|
|
378
378
|
### Handoff
|
|
379
|
-
Save to: `artifacts/handoffs/qa-visual-handoff.md`
|
|
379
|
+
Save to: `artifacts/handoffs/qa-visual/qa-visual-handoff.md`
|
|
380
380
|
|
|
381
381
|
---
|
|
382
382
|
|
|
@@ -384,13 +384,13 @@ Save to: `artifacts/handoffs/qa-visual-handoff.md`
|
|
|
384
384
|
|
|
385
385
|
### Receives
|
|
386
386
|
- **From**: Dev agent
|
|
387
|
-
- **Artifact**: `artifacts/handoffs/dev-handoff.md`
|
|
387
|
+
- **Artifact**: `artifacts/handoffs/dev/dev-handoff.md`
|
|
388
388
|
- **Expected content**: Affected routes, animation library installation confirmation
|
|
389
389
|
|
|
390
390
|
### Sends
|
|
391
391
|
- **To**: QA-Implementation agent (provides visual evidence for Phase 5d + 5e)
|
|
392
392
|
- **Artifact**: `artifacts/9-QA-Implementation/qa-visual-report.md`
|
|
393
|
-
- **Handoff file**: `artifacts/handoffs/qa-visual-handoff.md`
|
|
393
|
+
- **Handoff file**: `artifacts/handoffs/qa-visual/qa-visual-handoff.md`
|
|
394
394
|
- **Handoff content**: Visual verdict (APPROVED/NEEDS CORRECTION), score, screenshot paths, animation check results, brandbook findings
|
|
395
395
|
|
|
396
396
|
---
|
package/framework/config.yaml
CHANGED
|
@@ -156,7 +156,9 @@ Every agent in Chati.dev:
|
|
|
156
156
|
|
|
157
157
|
## Article VII: English-Only Documentation
|
|
158
158
|
|
|
159
|
-
All system documentation, agent definitions, templates,
|
|
159
|
+
All agent-authored prose in system documentation, agent definitions, templates,
|
|
160
|
+
artifacts, handoffs, and generated content MUST be written in English.
|
|
161
|
+
Both handoff layers, including Summary and Deep Context, follow this rule.
|
|
160
162
|
|
|
161
163
|
This applies to:
|
|
162
164
|
- Agent command files (`chati.dev/agents/`)
|
|
@@ -170,6 +172,13 @@ This applies to:
|
|
|
170
172
|
This does NOT apply to:
|
|
171
173
|
- Agent-user conversation (follows the validated `language` value supplied by router context)
|
|
172
174
|
- Console output, prompts, guidance, error messages (interaction language)
|
|
175
|
+
- Clearly identified quoted original input, such as Brain Dump (Raw), preserved
|
|
176
|
+
verbatim in its source language for traceability. This is not an exemption for authored prose:
|
|
177
|
+
summaries, analysis and surrounding explanations remain English. A quote label
|
|
178
|
+
or code fence alone does not make newly authored content original input.
|
|
179
|
+
|
|
180
|
+
The localized terminal handoff envelope is a visible response, not a handoff
|
|
181
|
+
artifact. Do not copy its localized prose into the Markdown handoff file.
|
|
173
182
|
|
|
174
183
|
**Rationale:** Portability, team collaboration, tooling compatibility.
|
|
175
184
|
|
|
@@ -184,6 +193,8 @@ Every agent MUST read the previous agent's handoff upon activation.
|
|
|
184
193
|
|
|
185
194
|
Handoffs are saved to `artifacts/handoffs/` and follow a two-layer structure:
|
|
186
195
|
|
|
196
|
+
Agent handoffs use `artifacts/handoffs/{agent}/{agent}-handoff.md`. Each agent owns only its subdirectory, including temporary files required by atomic editors. Flat `{agent}-handoff.md` files remain read-only legacy inputs, used only when the new path is absent. An invalid new output must not be replaced by stale legacy content. Team envelope paths remain unchanged.
|
|
197
|
+
|
|
187
198
|
### Layer 1: Summary (mandatory, max 150 lines)
|
|
188
199
|
Contains:
|
|
189
200
|
- Mission completed (1-2 sentences)
|
|
@@ -31,7 +31,8 @@ Extracted from `chati.dev/constitution.md` (25 Articles). Read the full constitu
|
|
|
31
31
|
- Health check validates registry vs filesystem
|
|
32
32
|
|
|
33
33
|
## Session Lock (Article XV)
|
|
34
|
-
- When session is active, ALL messages route through orchestrator
|
|
34
|
+
- When session is active, ALL user messages in the user-facing coordinator route through orchestrator
|
|
35
|
+
- A provider subprocess already delegated an agent/task executes only that assignment and returns its result to the parent. It must not recursively activate the entry skill/router, dispatch pipeline agents or advance/recover session state. Runtime checks and tool permissions remain unchanged.
|
|
35
36
|
- Only the enabled harness's native Chati exit command can deactivate the session
|
|
36
37
|
- Lock state is mirrored to each enabled harness's native local lock file
|
|
37
38
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Chati.dev System Context
|
|
2
2
|
|
|
3
3
|
## Framework
|
|
4
|
-
- **Version**: 4.5.
|
|
4
|
+
- **Version**: 4.5.29
|
|
5
5
|
- **Agents**: Specialized discovery and planning agents feeding provider-neutral RAIL execution and a sealed release lane
|
|
6
6
|
- **Constitution**: 25 Articles + Preamble
|
|
7
7
|
- **Quality**: 5 pipeline gates + 3-tier verdicts + Fault Vector Protocol (Article XXII)
|
|
@@ -25,3 +25,5 @@ RELEASE: Evidence gate -> Explicit human authorization -> External action
|
|
|
25
25
|
|
|
26
26
|
## How to Use
|
|
27
27
|
Use the provider-native Chati entry point to activate the orchestrator. The deterministic router validates canonical session state and returns the project context and next action. Harnesses never open the session file directly.
|
|
28
|
+
|
|
29
|
+
These entry steps belong to the user-facing coordinator. A provider subprocess already launched with an agent/task assignment is a delegated worker: use its supplied canonical context, execute only the assigned scope and return the required result envelope to the parent. Do not recursively activate the Chati skill/router, dispatch pipeline agents or advance/recover session state. This role distinction does not grant permissions or bypass runtime checks.
|
|
@@ -37,7 +37,7 @@ rules:
|
|
|
37
37
|
priority: normal
|
|
38
38
|
|
|
39
39
|
- id: art-vii
|
|
40
|
-
text: "All documentation and
|
|
40
|
+
text: "All authored prose in documentation and both handoff layers must be English; clearly identified quoted original input stays verbatim in its source language, not newly authored prose disguised as a quote."
|
|
41
41
|
priority: high
|
|
42
42
|
|
|
43
43
|
- id: art-viii
|
|
@@ -11,7 +11,7 @@ rules:
|
|
|
11
11
|
priority: normal
|
|
12
12
|
|
|
13
13
|
- id: artifacts-english
|
|
14
|
-
text: "All artifacts
|
|
14
|
+
text: "All authored prose in artifacts and both handoff layers must be English; clearly identified quoted original input stays verbatim in its source language. A quote label does not exempt authored analysis."
|
|
15
15
|
priority: high
|
|
16
16
|
|
|
17
17
|
- id: interaction-lang
|
|
@@ -4,10 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
steps:
|
|
6
6
|
- brief
|
|
7
|
+
- council-discovery
|
|
7
8
|
- detail
|
|
8
9
|
- architect
|
|
9
|
-
-
|
|
10
|
+
- ux
|
|
10
11
|
- qa-planning
|
|
12
|
+
- council-planning
|
|
13
|
+
- phases
|
|
14
|
+
- tasks
|
|
15
|
+
- council-execution-design
|
|
11
16
|
- rail
|
|
12
17
|
- release
|
|
13
18
|
|
|
@@ -16,14 +21,8 @@ rules:
|
|
|
16
21
|
text: "Standard Flow targets 2-5 requirements. Escalate to full pipeline if scope exceeds this range."
|
|
17
22
|
priority: critical
|
|
18
23
|
- id: sf-quality
|
|
19
|
-
text: "QA-Planning approval and independent RAIL review are mandatory. Score >= 95% is required."
|
|
24
|
+
text: "QA-Planning approval, the automatic cross-provider planning council, and independent RAIL review are mandatory. Score >= 95% is required."
|
|
20
25
|
priority: critical
|
|
21
|
-
- id: sf-no-ux-skip
|
|
22
|
-
text: "UX agent is excluded. If design-heavy requirements surface, escalate to full pipeline."
|
|
23
|
-
priority: high
|
|
24
|
-
- id: sf-no-phases
|
|
25
|
-
text: "Phases agent is excluded. Tasks agent handles scope decomposition directly from PRD + Architecture."
|
|
26
|
-
priority: high
|
|
27
26
|
- id: sf-escalation-up
|
|
28
27
|
text: "If architect discovers multi-service complexity or QA finds UX gaps, offer escalation to full pipeline."
|
|
29
28
|
priority: high
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* deterministically — without depending on Claude remembering to call advance.
|
|
9
9
|
*
|
|
10
10
|
* Trigger condition: the Write tool just wrote a file at
|
|
11
|
-
* artifacts/handoffs/<agent>-handoff.md
|
|
11
|
+
* artifacts/handoffs/<agent>/<agent>-handoff.md (or a legacy flat path)
|
|
12
12
|
* where the handoff's YAML frontmatter declares `status: completed` and
|
|
13
13
|
* contains `score: <N>`.
|
|
14
14
|
*
|
|
@@ -87,7 +87,8 @@ async function main() {
|
|
|
87
87
|
// Match agent handoff files in either layout:
|
|
88
88
|
// <root>/artifacts/handoffs/<agent>-handoff.md
|
|
89
89
|
// <root>/.chati.dev/artifacts/handoffs/<agent>-handoff.md
|
|
90
|
-
const handoffMatch = filePath.match(/artifacts\/handoffs\/([a-z0-9-]+)-handoff\.md$/)
|
|
90
|
+
const handoffMatch = filePath.match(/artifacts\/handoffs\/([a-z0-9-]+)\/\1-handoff\.md$/)
|
|
91
|
+
|| filePath.match(/artifacts\/handoffs\/([a-z0-9-]+)-handoff\.md$/);
|
|
91
92
|
if (!handoffMatch) return;
|
|
92
93
|
const agent = handoffMatch[1];
|
|
93
94
|
|
|
@@ -33,7 +33,7 @@ async function main() {
|
|
|
33
33
|
process.stdout.write('{}\n');
|
|
34
34
|
|
|
35
35
|
if (toolName !== 'Write') return;
|
|
36
|
-
if (
|
|
36
|
+
if (!/artifacts\/handoffs\/(?:brief\/)?brief-handoff\.md$/.test(filePath)) return;
|
|
37
37
|
|
|
38
38
|
// Validate brief-report.md
|
|
39
39
|
const reportCandidates = [
|
|
@@ -114,7 +114,7 @@ export function decideSpawn(ctx) {
|
|
|
114
114
|
if (!ctx.filePath) return null;
|
|
115
115
|
|
|
116
116
|
// Match only dev-handoff.md in the canonical paths.
|
|
117
|
-
const handoffMatch = ctx.filePath.match(/artifacts\/handoffs\/dev-handoff\.md$/);
|
|
117
|
+
const handoffMatch = ctx.filePath.match(/artifacts\/handoffs\/(?:dev\/)?dev-handoff\.md$/);
|
|
118
118
|
if (!handoffMatch) return null;
|
|
119
119
|
|
|
120
120
|
// Read the handoff to confirm status=completed and score passes threshold.
|
|
@@ -21,16 +21,19 @@ const AGENT_ARTIFACT_SCOPES = {
|
|
|
21
21
|
detail: [
|
|
22
22
|
'artifacts/2-PRD/',
|
|
23
23
|
'artifacts/handoffs/detail-',
|
|
24
|
+
'artifacts/handoffs/detail/',
|
|
24
25
|
'prd.md',
|
|
25
26
|
],
|
|
26
27
|
architect: [
|
|
27
28
|
'artifacts/3-Architecture/',
|
|
28
29
|
'artifacts/handoffs/architect-',
|
|
30
|
+
'artifacts/handoffs/architect/',
|
|
29
31
|
'architecture.md',
|
|
30
32
|
],
|
|
31
33
|
ux: [
|
|
32
34
|
'artifacts/4-UX/',
|
|
33
35
|
'artifacts/handoffs/ux-',
|
|
36
|
+
'artifacts/handoffs/ux/',
|
|
34
37
|
'ux-specification.md',
|
|
35
38
|
'brandbook.md',
|
|
36
39
|
'brandbook.html',
|
|
@@ -52,17 +55,21 @@ const AGENT_ARTIFACT_SCOPES = {
|
|
|
52
55
|
'__tests__/',
|
|
53
56
|
'artifacts/8-Implementation/',
|
|
54
57
|
'artifacts/handoffs/dev-',
|
|
58
|
+
'artifacts/handoffs/dev/',
|
|
55
59
|
],
|
|
56
60
|
'qa-planning': [
|
|
57
61
|
'artifacts/7-QA-Planning/',
|
|
58
|
-
'artifacts/handoffs/qa-planning',
|
|
62
|
+
'artifacts/handoffs/qa-planning-',
|
|
63
|
+
'artifacts/handoffs/qa-planning/',
|
|
59
64
|
],
|
|
60
65
|
'qa-implementation': [
|
|
61
66
|
'artifacts/9-QA-Implementation/',
|
|
62
67
|
'artifacts/handoffs/qa-implementation-',
|
|
68
|
+
'artifacts/handoffs/qa-implementation/',
|
|
63
69
|
],
|
|
64
70
|
'qa-visual': [
|
|
65
|
-
'artifacts/handoffs/qa-visual',
|
|
71
|
+
'artifacts/handoffs/qa-visual-',
|
|
72
|
+
'artifacts/handoffs/qa-visual/',
|
|
66
73
|
],
|
|
67
74
|
};
|
|
68
75
|
|
package/framework/i18n/en.yaml
CHANGED
|
@@ -23,6 +23,7 @@ installer:
|
|
|
23
23
|
llm_provider_label: "AI Provider"
|
|
24
24
|
ide_selection_title: "Select your IDEs / CLIs (multiple allowed):"
|
|
25
25
|
provider_selection_title: "Which AI providers will you use?"
|
|
26
|
+
council_providers_required: "Select at least two distinct providers capable of review for the required quality council."
|
|
26
27
|
editor_selection_title: "Which editor IDEs should get rules files? (optional)"
|
|
27
28
|
provider_claude_hint: "Anthropic official CLI"
|
|
28
29
|
provider_gemini_hint: "Google AI terminal agent"
|