chati-dev 4.2.2 → 4.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.
- package/README.md +80 -53
- package/bin/chati.js +150 -5
- package/framework/agents/build/dev.md +509 -76
- package/framework/agents/deploy/devops.md +40 -25
- package/framework/agents/discover/brief.md +156 -22
- package/framework/agents/discover/brownfield-wu.md +24 -14
- package/framework/agents/discover/greenfield-wu.md +100 -14
- package/framework/agents/plan/architect-data-engineer.md +6 -6
- package/framework/agents/plan/architect-system.md +46 -12
- package/framework/agents/plan/architect.md +40 -20
- package/framework/agents/plan/detail.md +36 -24
- package/framework/agents/plan/phases.md +36 -26
- package/framework/agents/plan/tasks.md +114 -33
- package/framework/agents/plan/ux-brand-architect.md +240 -8
- package/framework/agents/plan/ux-component-engineer.md +28 -13
- package/framework/agents/plan/ux-researcher.md +7 -6
- package/framework/agents/plan/ux.md +55 -22
- package/framework/agents/quality/qa-implementation.md +143 -74
- package/framework/agents/quality/qa-planning.md +115 -42
- package/framework/agents/quality/qa-visual.md +439 -0
- package/framework/agents/shared/visualizer.md +128 -0
- package/framework/config.yaml +7 -6
- package/framework/constitution.md +127 -44
- package/framework/context/governance.md +12 -7
- package/framework/context/quality.md +6 -5
- package/framework/context/root.md +6 -6
- package/framework/data/entity-registry.yaml +377 -4
- package/framework/data/model-limits.json +19 -0
- package/framework/domains/agents/qa-visual.yaml +74 -0
- package/framework/domains/constitution.yaml +46 -2
- package/framework/domains/workflows/greenfield-fullstack.yaml +2 -2
- package/framework/hooks/advance-trigger.js +131 -0
- package/framework/hooks/brief-validator.js +83 -0
- package/framework/hooks/constitution-guard.js +24 -5
- package/framework/hooks/license-guard.js +62 -27
- package/framework/hooks/mode-governance.js +13 -2
- package/framework/hooks/model-governance.js +1 -0
- package/framework/hooks/post-dev.js +207 -0
- package/framework/hooks/prism-engine.js +274 -105
- package/framework/hooks/reasoning-escalator.js +371 -0
- package/framework/hooks/reference-trigger.js +117 -0
- package/framework/hooks/session-digest.js +50 -1
- package/framework/hooks/settings.json +32 -1
- package/framework/hooks/style-guard.js +25 -6
- package/framework/hooks/team-quality-gate.js +19 -12
- package/framework/hooks/undercover-guard.js +4 -2
- package/framework/i18n/en.yaml +3 -3
- package/framework/i18n/es.yaml +3 -3
- package/framework/i18n/fr.yaml +3 -3
- package/framework/i18n/pt.yaml +3 -3
- package/framework/intelligence/context-engine.md +4 -5
- package/framework/intelligence/decision-engine.md +1 -1
- package/framework/intelligence/hooks-performance.md +3 -3
- package/framework/migrations/v1.0-to-v1.1.yaml +1 -1
- package/framework/migrations/v1.4-to-v2.0.yaml +11 -11
- package/framework/migrations/v4.0-to-v4.1.yaml +2 -2
- package/framework/migrations/v4.2-to-v4.3.yaml +29 -0
- package/framework/orchestrator/chati-router.js +387 -0
- package/framework/orchestrator/chati-update.md +40 -40
- package/framework/orchestrator/chati.md +294 -94
- package/framework/scaffold/motion-premium/README.md +89 -0
- package/framework/scaffold/motion-premium/app/globals.css.template +400 -0
- package/framework/scaffold/motion-premium/app/layout.tsx.template +110 -0
- package/framework/scaffold/motion-premium/components/animation/BackgroundCrossfadeProvider.tsx.template +170 -0
- package/framework/scaffold/motion-premium/components/animation/LenisProvider.tsx.template +49 -0
- package/framework/scaffold/motion-premium/components/animation/PageTransitionWrapper.tsx.template +83 -0
- package/framework/scaffold/motion-premium/components/animation/Preloader.tsx.template +171 -0
- package/framework/scaffold/motion-premium/components/ui/Container.tsx.template +69 -0
- package/framework/scaffold/motion-premium/components/ui/PageSection.tsx.template +74 -0
- package/framework/scaffold/motion-premium/lib/animations/gsap.ts.template +112 -0
- package/framework/scaffold/motion-premium/lib/animations/refreshCoordinator.ts.template +75 -0
- package/framework/scaffold/motion-premium/lib/animations/tokens.ts.template +119 -0
- package/framework/scaffold/motion-premium/lib/animations/useGsapContext.ts.template +92 -0
- package/framework/scaffold/motion-premium/lib/animations/useScrollSnapStepper.ts.template +265 -0
- package/framework/scaffold/motion-premium/lib/animations/useSmoothScroll.ts.template +67 -0
- package/framework/scaffold/motion-premium/lib/brand.ts.template +43 -0
- package/framework/scaffold/motion-premium/scaffold.yaml +174 -0
- package/framework/scaffold/motion-premium-3d/README.md +80 -0
- package/framework/scaffold/motion-premium-3d/app/(3d)/scroll-demo/ScrollDemoCanvas.tsx.template +81 -0
- package/framework/scaffold/motion-premium-3d/app/(3d)/scroll-demo/ScrollDemoClient.tsx.template +75 -0
- package/framework/scaffold/motion-premium-3d/app/(3d)/scroll-demo/page.tsx.template +26 -0
- package/framework/scaffold/motion-premium-3d/components/3d/CameraRig.tsx.template +100 -0
- package/framework/scaffold/motion-premium-3d/components/3d/CanvasProvider.tsx.template +85 -0
- package/framework/scaffold/motion-premium-3d/components/3d/InvalidateOnScroll.tsx.template +51 -0
- package/framework/scaffold/motion-premium-3d/components/3d/MeshCrossfade.tsx.template +79 -0
- package/framework/scaffold/motion-premium-3d/components/3d/ScrollCrossfade.tsx.template +88 -0
- package/framework/scaffold/motion-premium-3d/components/3d/ScrollScene.tsx.template +121 -0
- package/framework/scaffold/motion-premium-3d/components/webgl/SceneFallback.tsx.template +65 -0
- package/framework/scaffold/motion-premium-3d/components/webgl/WebGLContext.tsx.template +68 -0
- package/framework/scaffold/motion-premium-3d/lib/webgl/detect.ts.template +69 -0
- package/framework/scaffold/motion-premium-3d/scaffold.yaml +133 -0
- package/framework/schemas/session.schema.json +109 -21
- package/framework/scripts/reference-capture.js +430 -0
- package/framework/scripts/visual-qa.js +674 -0
- package/framework/tasks/orchestrator-handoff.md +1 -1
- package/framework/tasks/orchestrator-resume.md +1 -1
- package/framework/tasks/orchestrator-route.md +1 -1
- package/framework/tasks/orchestrator-status.md +3 -3
- package/framework/tasks/qa-planning-gate-define.md +1 -1
- package/framework/templates/brandbook-html-tmpl.md +1 -1
- package/framework/templates/brandbook-tmpl.yaml +1 -1
- package/framework/templates/component-spec-tmpl.yaml +1 -1
- package/framework/templates/design-token-tmpl.yaml +1 -1
- package/framework/templates/icon-system-tmpl.yaml +1 -1
- package/framework/templates/team-planning-tasks.yaml +6 -5
- package/framework/workflows/brownfield-discovery.yaml +2 -2
- package/framework/workflows/brownfield-fullstack.yaml +15 -11
- package/framework/workflows/brownfield-service.yaml +14 -10
- package/framework/workflows/brownfield-ui.yaml +15 -11
- package/framework/workflows/greenfield-fullstack.yaml +16 -13
- package/framework/workflows/quick-flow.yaml +3 -3
- package/framework/workflows/standard-flow.yaml +12 -9
- package/package.json +10 -5
- package/src/autonomy/autonomous-gate.js +1 -0
- package/src/autonomy/build-state.js +1 -2
- package/src/autonomy/progress-reporter.js +1 -1
- package/src/config/agent-customizer.js +11 -3
- package/src/config/claude-settings-generator.js +27 -7
- package/src/config/context-file-generator.js +41 -21
- package/src/config/framework-adapter.js +1 -0
- package/src/config/gemini-hooks-generator.js +19 -7
- package/src/config/mcp-configs.js +1 -0
- package/src/context/layers/l1-global.js +2 -1
- package/src/dashboard/data-reader.js +4 -3
- package/src/dashboard/layout.js +2 -1
- package/src/decision/analyzer.js +6 -30
- package/src/decision/engine.js +4 -28
- package/src/decision/registry-healer.js +3 -2
- package/src/decision/registry-updater.js +23 -14
- package/src/extensions/loader.js +2 -8
- package/src/gates/g1-planning-complete.js +2 -1
- package/src/gates/g2-qa-planning.js +2 -1
- package/src/gates/g3-implementation.js +2 -1
- package/src/gates/g4-qa-implementation.js +3 -2
- package/src/gates/g5-deploy-ready.js +2 -1
- package/src/health/engine.js +4 -3
- package/src/installer/core.js +422 -81
- package/src/installer/preflight.js +131 -0
- package/src/installer/provider-overlay.js +3 -3
- package/src/installer/scaffold-applier.js +358 -0
- package/src/installer/templates.js +46 -29
- package/src/installer/validator.js +17 -12
- package/src/intelligence/registry-manager.js +22 -29
- package/src/intelligence/timeline.js +11 -6
- package/src/license/commands.js +1 -1
- package/src/license/wait.js +102 -0
- package/src/memory/agent-memory.js +81 -0
- package/src/memory/dream.js +32 -1
- package/src/merger/replace-merger.js +28 -15
- package/src/orchestrator/agent-selector.js +2 -1
- package/src/orchestrator/cli.js +1869 -71
- package/src/orchestrator/doctor.js +270 -0
- package/src/orchestrator/handoff-engine.js +4 -3
- package/src/orchestrator/index.js +2 -0
- package/src/orchestrator/pipeline-manager.js +306 -15
- package/src/orchestrator/session-manager.js +331 -6
- package/src/tasks/handoff.js +3 -2
- package/src/telemetry/config.js +4 -3
- package/src/telemetry/schema.js +1 -0
- package/src/terminal/collector.js +3 -2
- package/src/terminal/index.js +1 -2
- package/src/terminal/isolation.js +52 -18
- package/src/terminal/prompt-builder.js +42 -25
- package/src/terminal/run-parallel.js +1 -1
- package/src/terminal/run-team.js +3 -3
- package/src/terminal/team-task-list.js +43 -4
- package/src/upgrade/backup.js +3 -2
- package/src/upgrade/checker.js +3 -2
- package/src/upgrade/migrator.js +65 -7
- package/src/upgrade/tracked-files-detector.js +86 -0
- package/src/upgrade/user-messages.js +94 -0
- package/src/utils/config-parser.js +2 -1
- package/src/utils/feature-flags.js +2 -1
- package/src/utils/flatten-entities.js +69 -0
- package/src/utils/framework-dir.js +16 -0
- package/src/utils/model-id.js +85 -0
- package/src/utils/provider-limits.js +84 -23
- package/src/utils/schema-validator.js +1 -1
- package/src/wizard/i18n.js +5 -4
- package/src/wizard/index.js +14 -0
- package/assets/logo - c/303/263pia.png +0 -0
- package/assets/logo.svg +0 -42
- package/assets/logo2.png +0 -0
- package/assets/social-preview.png +0 -0
- package/scripts/bundle-framework.js +0 -69
- package/scripts/changelog-generator.js +0 -222
- package/scripts/codebase-mapper.js +0 -728
- package/scripts/commit-message-generator.js +0 -167
- package/scripts/coverage-analyzer.js +0 -260
- package/scripts/dependency-analyzer.js +0 -280
- package/scripts/doctor/checks/agents.js +0 -77
- package/scripts/doctor/checks/constitution.js +0 -41
- package/scripts/doctor/checks/domain-alignment.js +0 -58
- package/scripts/doctor/checks/prism-layers.js +0 -84
- package/scripts/doctor/checks/registry.js +0 -55
- package/scripts/doctor/checks/schemas.js +0 -61
- package/scripts/doctor/fixes/reference-fix.js +0 -100
- package/scripts/doctor/fixes/registry-fix.js +0 -56
- package/scripts/doctor/index.js +0 -212
- package/scripts/framework-analyzer.js +0 -308
- package/scripts/generate-constitution-domain.js +0 -253
- package/scripts/generate-signing-key.js +0 -33
- package/scripts/health-check.js +0 -481
- package/scripts/ide-sync.js +0 -326
- package/scripts/performance-analyzer.js +0 -325
- package/scripts/plan-tracker.js +0 -278
- package/scripts/populate-entity-registry.js +0 -481
- package/scripts/pr-review.js +0 -317
- package/scripts/rollback-manager.js +0 -310
- package/scripts/semantic-lint.js +0 -328
- package/scripts/sign-manifest.js +0 -53
- package/scripts/stuck-detector.js +0 -343
- package/scripts/test-quality-assessment.js +0 -257
- package/scripts/validate-agents.js +0 -368
- package/scripts/validate-package.js +0 -505
- package/scripts/validate-tasks.js +0 -465
- package/src/autonomy/worktree-manager.js +0 -250
- package/src/intelligence/decision-engine.js +0 -256
- package/src/intelligence/document-sharder.js +0 -221
- package/src/intelligence/elicitation.js +0 -265
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# Scaffold Premium 3D — motion-premium-3d v1.0.0
|
|
2
|
+
#
|
|
3
|
+
# Extends motion-premium with React Three Fiber + Three.js templates for
|
|
4
|
+
# premium scroll-driven 3D experiences (camera rigs tied to ScrollTrigger
|
|
5
|
+
# scrub, scene crossfades, mesh animation, particle systems, WebGL
|
|
6
|
+
# fallback). Ship as a SEPARATE preset (ADR-3D-01) — 2D projects pay zero
|
|
7
|
+
# bundle cost; 3D projects apply motion-premium first, then this layer.
|
|
8
|
+
#
|
|
9
|
+
# Contract: files[] target paths are disjoint from motion-premium (checked
|
|
10
|
+
# at CI via scaffold-applier test in P9). The two presets compose without
|
|
11
|
+
# conflict on the scaffold-applier's already-exists skip guard.
|
|
12
|
+
|
|
13
|
+
id: motion-premium-3d
|
|
14
|
+
version: 1.0.0
|
|
15
|
+
description: "R3F + Three.js scroll-driven 3D layer for premium sites. Extends motion-premium. Separate bundle — apply only when 3D is in scope."
|
|
16
|
+
|
|
17
|
+
framework:
|
|
18
|
+
chati_dev: ">=4.3.0"
|
|
19
|
+
|
|
20
|
+
stack:
|
|
21
|
+
build_tools: ["nextjs"]
|
|
22
|
+
tailwind: ">=4.0.0"
|
|
23
|
+
typescript: ">=5.0.0"
|
|
24
|
+
node: ">=22.0.0"
|
|
25
|
+
react: ">=18.0.0"
|
|
26
|
+
# Peer deps pinned by MINOR (ADR-3D-06). Bumping policy: every two minor
|
|
27
|
+
# bumps from Three.js, update the tested matrix + re-validate templates.
|
|
28
|
+
three: "^0.160.0"
|
|
29
|
+
"@react-three/fiber": "^8.15.0"
|
|
30
|
+
"@react-three/drei": "^9.92.0"
|
|
31
|
+
# gsap + ScrollTrigger imported directly by ScrollScene.tsx and
|
|
32
|
+
# InvalidateOnScroll.tsx. motion-premium-3d composes on top of motion-premium
|
|
33
|
+
# but also declares the dep so a standalone apply (no motion-premium first)
|
|
34
|
+
# still has an accurate peer-dep surface.
|
|
35
|
+
gsap: "^3.12.5"
|
|
36
|
+
|
|
37
|
+
# Inherits motion-premium's brand placeholders — at apply time the loader
|
|
38
|
+
# resolves identically (brand.ts > brandbook.md > interactive). SceneFallback
|
|
39
|
+
# uses PRIMARY_HEX for the fallback background, hence the dependency here.
|
|
40
|
+
placeholders:
|
|
41
|
+
PRIMARY_HEX:
|
|
42
|
+
source: brand.colors.primary
|
|
43
|
+
default: "#7C3AED"
|
|
44
|
+
type: hex
|
|
45
|
+
BG_DEEP_HEX:
|
|
46
|
+
source: brand.colors.bgDeep
|
|
47
|
+
default: "#0A0A0F"
|
|
48
|
+
type: hex
|
|
49
|
+
|
|
50
|
+
brand_sources:
|
|
51
|
+
- path: lib/brand.ts
|
|
52
|
+
type: typescript
|
|
53
|
+
description: "Preferred: brand tokens shared with motion-premium"
|
|
54
|
+
- path: artifacts/4-UX/brandbook.md
|
|
55
|
+
type: markdown
|
|
56
|
+
description: "UX-authored brandbook"
|
|
57
|
+
- type: interactive
|
|
58
|
+
prompt: true
|
|
59
|
+
description: "Fallback: ask user for each placeholder"
|
|
60
|
+
|
|
61
|
+
# Files ship in phases P2-P5 of the workstream (see
|
|
62
|
+
# .planning/motion-premium-3d-v1.md). P1 landed the skeleton; P2 adds
|
|
63
|
+
# the WebGL detection + fallback trio; P3-P5 add the 3D canvas,
|
|
64
|
+
# scroll-scene, and demo templates.
|
|
65
|
+
files:
|
|
66
|
+
- source: lib/webgl/detect.ts.template
|
|
67
|
+
target: lib/webgl/detect.ts
|
|
68
|
+
phase: webgl
|
|
69
|
+
override: none
|
|
70
|
+
notes: "Pure client-side detector. WebGL2 > WebGL1 > reduced-motion opt-out. Scaffold-owned — the cleanup + reduced-motion coordination (ADR-3D-08) is invariant."
|
|
71
|
+
- source: components/webgl/WebGLContext.tsx.template
|
|
72
|
+
target: components/webgl/WebGLContext.tsx
|
|
73
|
+
phase: webgl
|
|
74
|
+
override: none
|
|
75
|
+
notes: "React context owning the one-shot detect result. useWebGLReady() hook exposed for consumer short-circuiting. Do not modify — all 3D templates rely on this shape."
|
|
76
|
+
- source: components/webgl/SceneFallback.tsx.template
|
|
77
|
+
target: components/webgl/SceneFallback.tsx
|
|
78
|
+
phase: webgl
|
|
79
|
+
override: partial
|
|
80
|
+
notes: "Rendered when WebGL is unavailable. Gradient uses brand placeholders. Extend with children (headline/CTA) — do not remove the role/aria-label contract."
|
|
81
|
+
- source: components/3d/CanvasProvider.tsx.template
|
|
82
|
+
target: components/3d/CanvasProvider.tsx
|
|
83
|
+
phase: canvas
|
|
84
|
+
override: none
|
|
85
|
+
notes: "Sole <Canvas> mount. frameloop=demand + WebGL gate + retina-aware DPR. Scaffold-owned — the single-RAF invariant depends on not patching this."
|
|
86
|
+
- source: components/3d/InvalidateOnScroll.tsx.template
|
|
87
|
+
target: components/3d/InvalidateOnScroll.tsx
|
|
88
|
+
phase: canvas
|
|
89
|
+
override: none
|
|
90
|
+
notes: "Bridges gsap.ticker -> R3F invalidate(). Must mount inside <Canvas>. Scaffold-owned — removing this re-fragments the RAF budget across Lenis/GSAP/R3F."
|
|
91
|
+
- source: components/3d/ScrollScene.tsx.template
|
|
92
|
+
target: components/3d/ScrollScene.tsx
|
|
93
|
+
phase: scroll-scene
|
|
94
|
+
override: none
|
|
95
|
+
notes: "Pinned section with ScrollTrigger-driven progress ref. Scaffold-owned — progress is read by CameraRig/ScrollCrossfade/MeshCrossfade inside <Canvas>."
|
|
96
|
+
- source: components/3d/CameraRig.tsx.template
|
|
97
|
+
target: components/3d/CameraRig.tsx
|
|
98
|
+
phase: scroll-scene
|
|
99
|
+
override: partial
|
|
100
|
+
notes: "Keyframe-driven camera interpolation. User supplies keyframes[] via props. Per-segment easing supported. Internal lerp uses reusable Vector3 scratch (zero per-frame alloc)."
|
|
101
|
+
- source: components/3d/ScrollCrossfade.tsx.template
|
|
102
|
+
target: components/3d/ScrollCrossfade.tsx
|
|
103
|
+
phase: scroll-scene
|
|
104
|
+
override: partial
|
|
105
|
+
notes: "Multi-group scene crossfade. stops[] + optional at[] for uneven spacing. Best-effort material.opacity cascade with visibility short-circuit for GPU skip."
|
|
106
|
+
- source: components/3d/MeshCrossfade.tsx.template
|
|
107
|
+
target: components/3d/MeshCrossfade.tsx
|
|
108
|
+
phase: scroll-scene
|
|
109
|
+
override: partial
|
|
110
|
+
notes: "Single-slot mesh variant swapping with hysteresis (default 2 percent). Use when inactive variants should NOT be instantiated."
|
|
111
|
+
- source: app/(3d)/scroll-demo/page.tsx.template
|
|
112
|
+
target: app/(3d)/scroll-demo/page.tsx
|
|
113
|
+
phase: demo
|
|
114
|
+
override: partial
|
|
115
|
+
notes: "Route-group entry. Server Component — metadata + Client wrapper. URL stays at /scroll-demo; drop app/(3d)/ folder to remove. User replaces content for production."
|
|
116
|
+
- source: app/(3d)/scroll-demo/ScrollDemoClient.tsx.template
|
|
117
|
+
target: app/(3d)/scroll-demo/ScrollDemoClient.tsx
|
|
118
|
+
phase: demo
|
|
119
|
+
override: partial
|
|
120
|
+
notes: "Client wrapper: WebGLProvider, ScrollScene, ScrollSceneContext. Dynamic-imports ScrollDemoCanvas with ssr:false. User customises overlay HTML + section length."
|
|
121
|
+
- source: app/(3d)/scroll-demo/ScrollDemoCanvas.tsx.template
|
|
122
|
+
target: app/(3d)/scroll-demo/ScrollDemoCanvas.tsx
|
|
123
|
+
phase: demo
|
|
124
|
+
override: partial
|
|
125
|
+
notes: "Canvas subtree: CanvasProvider + InvalidateOnScroll + CameraRig + MeshCrossfade + Preload. The 600KB 3D bundle is isolated behind this file's dynamic boundary."
|
|
126
|
+
|
|
127
|
+
principles:
|
|
128
|
+
- "Single RAF via frameloop=demand (ADR-3D-03) — Lenis drives GSAP drives invalidate()"
|
|
129
|
+
- "Canvas mounts client-only via next/dynamic({ ssr: false }) (ADR-3D-04)"
|
|
130
|
+
- "WebGL detection + SceneFallback graceful degrade (ADR-3D-05)"
|
|
131
|
+
- "Reduced-motion non-negotiable — prefers-reduced-motion=reduce renders fallback, never the canvas (ADR-3D-08)"
|
|
132
|
+
- "Disjoint file targets from motion-premium — scaffold-applier enforces the invariant"
|
|
133
|
+
- "R3F (not vanilla Three.js) for composability with React 19 (ADR-3D-02)"
|
|
@@ -3,8 +3,59 @@
|
|
|
3
3
|
"title": "chati.dev Session",
|
|
4
4
|
"description": "Schema for .chati/session.yaml - runtime state tracking",
|
|
5
5
|
"type": "object",
|
|
6
|
-
"required": ["project", "current_agent", "language", "execution_mode"],
|
|
6
|
+
"required": ["schema_version", "version", "project", "current_agent", "language", "execution_mode"],
|
|
7
7
|
"properties": {
|
|
8
|
+
"schema_version": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"pattern": "^\\d+\\.\\d+$",
|
|
11
|
+
"description": "Session schema version (current: 1.2). migrateSession() handles v0 → v1.2 additively."
|
|
12
|
+
},
|
|
13
|
+
"version": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "Legacy framework-version marker on the session object (distinct from schema_version). Kept for backwards compatibility."
|
|
16
|
+
},
|
|
17
|
+
"mode": {
|
|
18
|
+
"enum": ["discover", "plan", "build", "validate", "deploy", "completed"],
|
|
19
|
+
"default": "discover",
|
|
20
|
+
"description": "Flat pipeline macro-phase (mirrors project.state). Read by prism-engine and mode-governance hooks."
|
|
21
|
+
},
|
|
22
|
+
"project_type": {
|
|
23
|
+
"enum": ["greenfield", "brownfield"],
|
|
24
|
+
"default": "greenfield",
|
|
25
|
+
"description": "Flat copy of project.type — kept for hook convenience."
|
|
26
|
+
},
|
|
27
|
+
"started_at": {
|
|
28
|
+
"type": ["string", "null"],
|
|
29
|
+
"format": "date-time",
|
|
30
|
+
"description": "ISO timestamp of session creation. Consulted by reasoning-escalator for the deliberate-tier plan freshness check."
|
|
31
|
+
},
|
|
32
|
+
"pipeline_position": {
|
|
33
|
+
"type": "integer",
|
|
34
|
+
"minimum": 0,
|
|
35
|
+
"default": 0,
|
|
36
|
+
"description": "0-indexed position in the AGENT_PIPELINE array. Advanced by recordAgentCompletion."
|
|
37
|
+
},
|
|
38
|
+
"completed_agents": {
|
|
39
|
+
"type": "array",
|
|
40
|
+
"items": { "type": "string" },
|
|
41
|
+
"default": [],
|
|
42
|
+
"description": "History of completed agent names in order. Used by advance-trigger to gate re-entry and by the /chati next routing logic."
|
|
43
|
+
},
|
|
44
|
+
"agent_results": {
|
|
45
|
+
"type": "object",
|
|
46
|
+
"default": {},
|
|
47
|
+
"description": "Per-agent score history keyed by agent name. Populated by recordAgentCompletion.",
|
|
48
|
+
"patternProperties": {
|
|
49
|
+
"^[a-z][a-z0-9-]*$": {
|
|
50
|
+
"type": "object",
|
|
51
|
+
"properties": {
|
|
52
|
+
"score": { "type": "number", "minimum": 0, "maximum": 100 },
|
|
53
|
+
"verdict": { "enum": ["APPROVED", "REVIEW", "NEEDS_WORK", "PASS", "FAIL", null] },
|
|
54
|
+
"completed_at": { "type": ["string", "null"], "format": "date-time" }
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
},
|
|
8
59
|
"project": {
|
|
9
60
|
"type": "object",
|
|
10
61
|
"required": ["name", "type", "state"],
|
|
@@ -19,32 +70,12 @@
|
|
|
19
70
|
"default": "interactive",
|
|
20
71
|
"description": "interactive = agent-driven guided mode; autonomous = Ralph Wiggum mode (Dev agent)"
|
|
21
72
|
},
|
|
22
|
-
"execution_profile": {
|
|
23
|
-
"type": "string",
|
|
24
|
-
"enum": ["explore", "guided", "autonomous"],
|
|
25
|
-
"default": "guided",
|
|
26
|
-
"description": "Current execution profile governing confirmation requirements"
|
|
27
|
-
},
|
|
28
73
|
"providers_enabled": {
|
|
29
74
|
"type": "array",
|
|
30
75
|
"items": { "type": "string" },
|
|
31
76
|
"default": ["claude"],
|
|
32
77
|
"description": "List of enabled CLI providers"
|
|
33
78
|
},
|
|
34
|
-
"profile_transitions": {
|
|
35
|
-
"type": "array",
|
|
36
|
-
"items": {
|
|
37
|
-
"type": "object",
|
|
38
|
-
"properties": {
|
|
39
|
-
"from": { "type": "string" },
|
|
40
|
-
"to": { "type": "string" },
|
|
41
|
-
"reason": { "type": "string" },
|
|
42
|
-
"timestamp": { "type": "string", "format": "date-time" }
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
"default": [],
|
|
46
|
-
"description": "History of execution profile changes"
|
|
47
|
-
},
|
|
48
79
|
"current_agent": {
|
|
49
80
|
"type": "string",
|
|
50
81
|
"description": "Currently active agent name"
|
|
@@ -300,6 +331,63 @@
|
|
|
300
331
|
}
|
|
301
332
|
}
|
|
302
333
|
},
|
|
334
|
+
"scaffold_candidates": {
|
|
335
|
+
"type": "array",
|
|
336
|
+
"default": [],
|
|
337
|
+
"description": "Scaffold presets eligible for this project (Fase 10 auto-gate). Written by discovery agents (e.g. greenfield-wu) when stack answer matches a preset's trigger conditions.",
|
|
338
|
+
"items": { "type": "string" }
|
|
339
|
+
},
|
|
340
|
+
"scaffold_signals": {
|
|
341
|
+
"type": "object",
|
|
342
|
+
"default": {},
|
|
343
|
+
"description": "Per-preset confidence signals collected during planning (Fase 10 auto-gate). Keys are preset ids (e.g. 'motion_premium', using underscore to avoid YAML dash quoting).",
|
|
344
|
+
"patternProperties": {
|
|
345
|
+
"^[a-z][a-z0-9_]*$": {
|
|
346
|
+
"type": "object",
|
|
347
|
+
"properties": {
|
|
348
|
+
"confidence": { "type": "number", "minimum": 0, "maximum": 1, "description": "0.0 - 1.0. Gate fires at >= 0.7." },
|
|
349
|
+
"evidence": { "type": "array", "items": { "type": "string" }, "description": "Short strings naming the matches (e.g. 'GSAP ScrollTrigger', 'Lenis smooth-scroll')." },
|
|
350
|
+
"source_agent": { "type": "string", "description": "Agent that wrote this signal (e.g. 'ux-brand-architect')." },
|
|
351
|
+
"updated_at": { "type": "string", "format": "date-time" }
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
},
|
|
356
|
+
"scaffold_applied": {
|
|
357
|
+
"type": "array",
|
|
358
|
+
"default": [],
|
|
359
|
+
"description": "Presets that have been applied via the auto-gate decision dispatcher (Fase 10). Prevents double-apply if advance is re-run.",
|
|
360
|
+
"items": { "type": "string" }
|
|
361
|
+
},
|
|
362
|
+
"active_model": {
|
|
363
|
+
"type": ["string", "null"],
|
|
364
|
+
"default": null,
|
|
365
|
+
"description": "Normalized Claude model key (Article XII v2 / context-window-detection v1). Output of parseClaudeModelId — e.g. 'opus', 'opus[1m]', 'sonnet', 'haiku'. Written at /chati boot; drives context-limit resolution in hooks. Null = unknown (detection chain falls through to provider default)."
|
|
366
|
+
},
|
|
367
|
+
"active_provider": {
|
|
368
|
+
"type": ["string", "null"],
|
|
369
|
+
"enum": ["claude", "gemini", "codex", null],
|
|
370
|
+
"default": null,
|
|
371
|
+
"description": "Active CLI provider. Redundant with providers_enabled[0] but flat for hook convenience."
|
|
372
|
+
},
|
|
373
|
+
"context_tokens_used": {
|
|
374
|
+
"type": "integer",
|
|
375
|
+
"minimum": 0,
|
|
376
|
+
"default": 0,
|
|
377
|
+
"description": "Cumulative rolling estimate of tokens consumed in this session, character-based (1 token ≈ 4 chars). Updated by prism-engine on every UserPromptSubmit. Replaces turn-count as the primary metric for bracket determination."
|
|
378
|
+
},
|
|
379
|
+
"context_window_tokens": {
|
|
380
|
+
"type": ["integer", "null"],
|
|
381
|
+
"minimum": 1,
|
|
382
|
+
"default": null,
|
|
383
|
+
"description": "Cached window size resolved from active_model + active_provider. Lets hooks compute remaining% without re-loading model-limits.json."
|
|
384
|
+
},
|
|
385
|
+
"context_last_bracket": {
|
|
386
|
+
"type": ["string", "null"],
|
|
387
|
+
"enum": ["FRESH", "MODERATE", "DEPLETED", "CRITICAL", null],
|
|
388
|
+
"default": null,
|
|
389
|
+
"description": "Last computed bracket. Surfaced in /chati status and telemetry."
|
|
390
|
+
},
|
|
303
391
|
"decision_trail": {
|
|
304
392
|
"type": "array",
|
|
305
393
|
"default": [],
|