@ryuenn3123/agentic-senior-core 3.0.31 → 3.0.33
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/.agent-context/prompts/bootstrap-design.md +4 -0
- package/.agent-context/review-checklists/pr-checklist.md +2 -0
- package/.agent-context/rules/frontend-architecture.md +17 -0
- package/.agent-context/state/memory-continuity-benchmark.json +1 -1
- package/.cursorrules +1 -1
- package/.gemini/instructions.md +6 -1
- package/.github/copilot-instructions.md +6 -1
- package/.instructions.md +26 -4
- package/.windsurfrules +1 -1
- package/AGENTS.md +6 -1
- package/lib/cli/project-scaffolder/design-contract.mjs +10 -1
- package/lib/cli/utils.mjs +12 -0
- package/package.json +1 -1
- package/scripts/sync-thin-adapters.mjs +15 -0
- package/scripts/validate/config.mjs +9 -0
- package/scripts/validate/coverage-checks.mjs +44 -0
|
@@ -18,6 +18,7 @@ The agent must:
|
|
|
18
18
|
5. Treat prior-chat visuals, unrelated project memory, benchmark screenshots, and famous-product aesthetics as tainted context unless the user explicitly asks for continuity.
|
|
19
19
|
6. When choosing a new UI, animation, styling, or component library, research current official docs and choose the latest stable compatible option for this project. Do not rely on offline defaults.
|
|
20
20
|
7. Keep external references non-copying: extract constraints and reasoning only, never clone the surface.
|
|
21
|
+
8. Record a Motion/Palette Decision before UI implementation; product categories are heuristics, not style presets, so override them with task, content density, brand intent, device/performance, and accessibility evidence.
|
|
21
22
|
|
|
22
23
|
## Creative Commitment Gate
|
|
23
24
|
|
|
@@ -100,6 +101,7 @@ Do:
|
|
|
100
101
|
- Synthesize a visual direction from the project context and explain why it fits.
|
|
101
102
|
- Choose color, typography, spacing, motion, density, and component morphology dynamically from the product and audience.
|
|
102
103
|
- Use modern, expressive interaction and motion as part of the core design language, especially when it improves hierarchy, feedback, delight, confidence, or memorability.
|
|
104
|
+
- Use 3D or spatial/canvas experiences as primary UI only when they improve product understanding or exploration while preserving navigation, content clarity, user actions, performance, accessibility, and non-3D fallbacks.
|
|
103
105
|
- Keep frontend code clean, componentized, accessible, and easy to maintain.
|
|
104
106
|
- Use tokens and semantic aliases so future changes do not require rewriting components.
|
|
105
107
|
- Make design decisions explicit before coding, then implement consistently.
|
|
@@ -110,6 +112,7 @@ Do not:
|
|
|
110
112
|
- Let heading, body, data, and metadata collapse into one safe typographic treatment without rationale.
|
|
111
113
|
- Reuse colors, layout shapes, or motion signatures from unrelated memory.
|
|
112
114
|
- Add decorative animation that hurts clarity, accessibility, or runtime performance.
|
|
115
|
+
- Let 3D visuals hide navigation, replace readable content, block core actions, or require a powerful device before the product can be understood.
|
|
113
116
|
- Choose a dependency because this repo scaffold mentioned it. The LLM must verify fit from current project context and official docs.
|
|
114
117
|
|
|
115
118
|
## Responsive Rule
|
|
@@ -142,6 +145,7 @@ For every UI task, define how major surfaces change across mobile, tablet, and d
|
|
|
142
145
|
The JSON must stay machine-readable and project-specific. It should record:
|
|
143
146
|
- the confirmed project context and assumptions to validate
|
|
144
147
|
- agent-chosen visual direction, not scaffold-chosen direction
|
|
148
|
+
- `motionPaletteDecision` with motion density source, required interaction states, palette autopilot risk, and whether 3D/canvas is useful or unnecessary
|
|
145
149
|
- `conceptualAnchor` and how typography, spacing, morphology, motion, and responsive composition derive from it when no external research was provided
|
|
146
150
|
- `derivedTokenLogic` with exact `anchorReference` traceability for color, spacing, typography, and motion tokens
|
|
147
151
|
- `libraryResearchStatus` plus `libraryDecisions[]` with verified source metadata or explicit native/project-local fallbacks
|
|
@@ -5,6 +5,7 @@ Run this before declaring a task done. Apply only the sections relevant to the c
|
|
|
5
5
|
## 1. Repo Context
|
|
6
6
|
|
|
7
7
|
- [ ] The agent read `AGENTS.md` and the smallest relevant rule set.
|
|
8
|
+
- [ ] For non-trivial coding, review, planning, or governance work, the agent produced a Bootstrap Receipt with loaded files, selected rules, skipped rules, unreachable files, and validation plan before implementation output.
|
|
8
9
|
- [ ] Existing project context came from real files, docs, package metadata, and changed code, not folder name alone.
|
|
9
10
|
- [ ] Runtime, framework, library, topology, and design choices are explicit user constraints or agent recommendations from current evidence.
|
|
10
11
|
- [ ] No offline default stack, blueprint, vendor, or visual style was treated as authoritative.
|
|
@@ -71,6 +72,7 @@ Run this before declaring a task done. Apply only the sections relevant to the c
|
|
|
71
72
|
|
|
72
73
|
- [ ] UI work follows `docs/DESIGN.md` and `docs/design-intent.json`.
|
|
73
74
|
- [ ] Visual direction is project-specific and not a template/default component-kit habit.
|
|
75
|
+
- [ ] UI work includes a Motion/Palette Decision, and product categories were treated as heuristics rather than style presets.
|
|
74
76
|
- [ ] Responsive behavior recomposes content and priority, not only shrinking desktop layout.
|
|
75
77
|
- [ ] Accessibility hard requirements are preserved: keyboard access, focus visibility, contrast, target size, status feedback, and no color-only meaning.
|
|
76
78
|
- [ ] Motion is treated as part of the design language for modern UI work, with reduced-motion and performance safeguards instead of defaulting to static screens.
|
|
@@ -69,6 +69,23 @@ Do not use this file to teach generic frontend basics the model already knows.
|
|
|
69
69
|
- If live research is unavailable, mark `libraryResearchStatus` as `pending-verification`, record the library as `LIBRARY_TO_VERIFY`, and use native CSS, browser APIs, or already-present project dependencies until verification is possible.
|
|
70
70
|
- Each `libraryDecisions[]` entry must have either verification metadata or a concrete `fallbackIfUnavailable`.
|
|
71
71
|
|
|
72
|
+
## Contextual Motion and Palette Intelligence
|
|
73
|
+
|
|
74
|
+
- Product categories are heuristics, not style presets. Use them only as a starting signal, then choose motion density from user task, content density, brand intent, device/performance budget, and accessibility needs.
|
|
75
|
+
- If the category is unclear, infer from the dominant task: reading, scanning, form completion, data comparison, product inspection, storytelling, learning, play, or spatial exploration.
|
|
76
|
+
- For interactive UI, map the required states before coding: default, hover, focus-visible, active/pressed, disabled, loading, empty, error, success, and transition.
|
|
77
|
+
- Do not default to dark slate, cream/beige/tan, purple-blue gradients, monochrome palettes, or uniform card surfaces unless current project evidence supports them. If one of those palettes is used, document why it fits and add enough role contrast that the UI does not read as a template.
|
|
78
|
+
- Use the existing motion stack first. Add animation, 3D, canvas, or scroll dependencies only when they materially improve delivery speed, interaction quality, maintainability, or product understanding.
|
|
79
|
+
- Motion should be absent only for a named reason: repeated high-frequency workflow, long-form reading focus, data-density scanning, reduced-motion need, or performance constraint.
|
|
80
|
+
|
|
81
|
+
## Spatial and 3D Experience Boundary
|
|
82
|
+
|
|
83
|
+
- 3D, WebGL, canvas, and immersive spatial interfaces are allowed as the primary experience when they clarify the product, strengthen the chosen anchor, or make exploration meaningfully better than a flat UI.
|
|
84
|
+
- 3D must not take over the jobs of navigation, content comprehension, or decisive user actions. Core routes, text, forms, and calls to action must remain discoverable, accessible, and usable without solving the scene.
|
|
85
|
+
- Treat 3D as interaction architecture, not decoration. If it is only a modern-looking background or visual stunt, reduce it to a supporting accent or remove it.
|
|
86
|
+
- Define performance and accessibility fallbacks before implementation: reduced motion, keyboard reachable controls, readable non-canvas content, mobile budgets, loading states, and a graceful non-3D path when rendering fails.
|
|
87
|
+
- When 3D is central, document its product role, interaction model, fallback path, and library/runtime decision in `docs/DESIGN.md` and `docs/design-intent.json` before coding.
|
|
88
|
+
|
|
72
89
|
## Responsive Mutation Requirements
|
|
73
90
|
|
|
74
91
|
- Responsive quality is not allowed to be scale-only. At least one surface must materially change position, grouping, priority, or disclosure strategy between mobile and desktop.
|
package/.cursorrules
CHANGED
package/.gemini/instructions.md
CHANGED
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
Adapter Mode: thin
|
|
4
4
|
Adapter Source: .instructions.md
|
|
5
|
-
Canonical Snapshot SHA256:
|
|
5
|
+
Canonical Snapshot SHA256: a49781782fac817a8a979e7937563b67826fd088af160a12cf84bdab4d038624
|
|
6
6
|
|
|
7
7
|
Canonical policy source: [.instructions.md](../.instructions.md).
|
|
8
8
|
|
|
9
9
|
If your host stops at this file, follow this minimum floor:
|
|
10
10
|
- Read `.agent-instructions.md` next when it exists.
|
|
11
11
|
- For UI or redesign requests, load [.agent-context/prompts/bootstrap-design.md](../.agent-context/prompts/bootstrap-design.md) and [.agent-context/rules/frontend-architecture.md](../.agent-context/rules/frontend-architecture.md) before coding.
|
|
12
|
+
- For UI scope, include a one-line Motion/Palette Decision in the Bootstrap Receipt; product categories are heuristics, not style presets.
|
|
12
13
|
- If UI scope and `docs/DESIGN.md` or `docs/design-intent.json` is missing, materialize them before UI implementation.
|
|
13
14
|
- For backend/API/data/auth/event requests, load relevant global rules from [.agent-context/rules/](../.agent-context/rules) and do not create stack-specific governance adapters.
|
|
14
15
|
- Memory continuity is host-dependent project memory and does not replace bootstrap loading.
|
|
@@ -23,6 +24,10 @@ If your host stops at this file, follow this minimum floor:
|
|
|
23
24
|
6. Apply state awareness from [.agent-context/state/](../.agent-context/state) and policy thresholds from [.agent-context/policies/](../.agent-context/policies).
|
|
24
25
|
7. Resolve runtime, structure, and dependency choices from project context docs plus live evidence.
|
|
25
26
|
|
|
27
|
+
## Bootstrap Receipt
|
|
28
|
+
|
|
29
|
+
For non-trivial coding, review, planning, or governance work, produce a short Bootstrap Receipt before implementation output: `loaded_files`, `selected_rules`, `skipped_rules`, `unreachable_files`, and `validation_plan`.
|
|
30
|
+
|
|
26
31
|
## Completion Gate
|
|
27
32
|
|
|
28
33
|
Run [.agent-context/review-checklists/pr-checklist.md](../.agent-context/review-checklists/pr-checklist.md) before declaring completion.
|
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
Adapter Mode: thin
|
|
4
4
|
Adapter Source: .instructions.md
|
|
5
|
-
Canonical Snapshot SHA256:
|
|
5
|
+
Canonical Snapshot SHA256: a49781782fac817a8a979e7937563b67826fd088af160a12cf84bdab4d038624
|
|
6
6
|
|
|
7
7
|
The canonical policy source for this repository is [.instructions.md](../.instructions.md).
|
|
8
8
|
|
|
9
9
|
If your host stops at this file, follow this minimum floor:
|
|
10
10
|
- Read `.agent-instructions.md` next when it exists.
|
|
11
11
|
- For UI or redesign requests, load [.agent-context/prompts/bootstrap-design.md](../.agent-context/prompts/bootstrap-design.md) and [.agent-context/rules/frontend-architecture.md](../.agent-context/rules/frontend-architecture.md) before coding.
|
|
12
|
+
- For UI scope, include a one-line Motion/Palette Decision in the Bootstrap Receipt; product categories are heuristics, not style presets.
|
|
12
13
|
- If UI scope and `docs/DESIGN.md` or `docs/design-intent.json` is missing, materialize them before UI implementation.
|
|
13
14
|
- For backend/API/data/auth/event requests, load relevant global rules from [.agent-context/rules/](../.agent-context/rules) and do not create stack-specific governance adapters.
|
|
14
15
|
- Memory continuity is host-dependent project memory and does not replace bootstrap loading.
|
|
@@ -23,6 +24,10 @@ If your host stops at this file, follow this minimum floor:
|
|
|
23
24
|
6. Apply state awareness from [.agent-context/state/](../.agent-context/state) and thresholds from [.agent-context/policies/](../.agent-context/policies).
|
|
24
25
|
7. Resolve runtime, structure, and dependency choices from project context docs plus live evidence.
|
|
25
26
|
|
|
27
|
+
## Bootstrap Receipt
|
|
28
|
+
|
|
29
|
+
For non-trivial coding, review, planning, or governance work, produce a short Bootstrap Receipt before implementation output: `loaded_files`, `selected_rules`, `skipped_rules`, `unreachable_files`, and `validation_plan`.
|
|
30
|
+
|
|
26
31
|
## Completion Gate
|
|
27
32
|
|
|
28
33
|
Run [.agent-context/review-checklists/pr-checklist.md](../.agent-context/review-checklists/pr-checklist.md) before declaring work complete.
|
package/.instructions.md
CHANGED
|
@@ -16,6 +16,27 @@ You use clear, plain language in formal artifacts and do not use emoji.
|
|
|
16
16
|
|
|
17
17
|
Resolve the smallest relevant layer set for the current request. Do not load every layer by default when the task is narrow.
|
|
18
18
|
|
|
19
|
+
### Bootstrap Receipt
|
|
20
|
+
|
|
21
|
+
For non-trivial coding, review, planning, or governance work, produce a concise bootstrap receipt before implementation output or file edits. The receipt is evidence of rule loading, not a request to expose hidden reasoning.
|
|
22
|
+
|
|
23
|
+
Required fields:
|
|
24
|
+
- `loaded_files`: entrypoint, canonical source, and project files actually read.
|
|
25
|
+
- `selected_rules`: rule, prompt, checklist, state, or policy files selected for the current scope, with a short trigger.
|
|
26
|
+
- `skipped_rules`: categories intentionally left unloaded because they are out of scope.
|
|
27
|
+
- `unreachable_files`: required files that could not be read; stop instead of guessing when this list is non-empty.
|
|
28
|
+
- `validation_plan`: commands or checks expected before completion.
|
|
29
|
+
|
|
30
|
+
Keep the receipt short. Do not load every rule just to fill it out; scoped loading remains mandatory.
|
|
31
|
+
|
|
32
|
+
### Output and Command Economy
|
|
33
|
+
|
|
34
|
+
Avoid repeated command output. Do not rerun the same broad inspection command unless new edits changed its result. Prefer targeted reads, targeted searches, concise diffs, and final validation gates; summarize long logs instead of copying full command output into the response.
|
|
35
|
+
|
|
36
|
+
### UI Motion and Palette Readability Floor
|
|
37
|
+
|
|
38
|
+
For any UI-facing request, `bootstrap-design.md` and `frontend-architecture.md` must appear in `selected_rules` before UI code edits. The plan or receipt must include a one-line Motion/Palette Decision: motion density source, required interaction states, palette autopilot risk, and whether 3D/canvas is useful or unnecessary. Product categories are heuristics, not style presets; override them with user task, content density, brand intent, device/performance, and accessibility evidence.
|
|
39
|
+
|
|
19
40
|
### Layer 1: Rules (15 Files) [SCOPE-RESOLVED]
|
|
20
41
|
|
|
21
42
|
**Location**: `.agent-context/rules/`
|
|
@@ -184,10 +205,11 @@ Use available MCP tools when you need validation, linting, or test execution.
|
|
|
184
205
|
1. Read `.agent-context/prompts/bootstrap-design.md`.
|
|
185
206
|
2. Read `.agent-context/rules/frontend-architecture.md`.
|
|
186
207
|
3. Read UI-relevant repository evidence from `.agent-context/state/onboarding-report.json`, current UI code, and `docs/*`.
|
|
187
|
-
4.
|
|
188
|
-
5.
|
|
189
|
-
6.
|
|
190
|
-
7.
|
|
208
|
+
4. Add a short Motion/Palette Decision before UI implementation; product categories are heuristics, not style presets.
|
|
209
|
+
5. Before UI implementation, record a concrete creative commitment in the design contract: one specific real-world anchor reference, one signature motion behavior, and one typographic decision with meaningful role contrast.
|
|
210
|
+
6. Ensure `docs/design-intent.json` includes `conceptualAnchor.anchorReference`, top-level `derivedTokenLogic`, `libraryResearchStatus`, `libraryDecisions[]`, and motion/palette decisions before UI code.
|
|
211
|
+
7. Generate or refine `docs/DESIGN.md` plus `docs/design-intent.json` before UI implementation.
|
|
212
|
+
8. Keep context isolated and do not eagerly load unrelated backend-only rules unless the task explicitly touches those boundaries.
|
|
191
213
|
|
|
192
214
|
---
|
|
193
215
|
|
package/.windsurfrules
CHANGED
package/AGENTS.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Adapter Mode: thin
|
|
4
4
|
Adapter Source: .instructions.md
|
|
5
|
-
Canonical Snapshot SHA256:
|
|
5
|
+
Canonical Snapshot SHA256: a49781782fac817a8a979e7937563b67826fd088af160a12cf84bdab4d038624
|
|
6
6
|
|
|
7
7
|
This file is an adapter entrypoint for agent discovery.
|
|
8
8
|
The canonical policy source is [.instructions.md](.instructions.md).
|
|
@@ -14,6 +14,7 @@ If your host stops at this file instead of following the full chain, obey the Cr
|
|
|
14
14
|
- If `.agent-instructions.md` exists, prefer it immediately after this file because it is the compiled project-specific snapshot.
|
|
15
15
|
- Memory continuity does not replace bootstrap loading. It is host-dependent project memory, not a guarantee that instructions were reloaded for this session.
|
|
16
16
|
- For UI, UX, layout, screen, tailwind, frontend, or redesign requests: load [.agent-context/prompts/bootstrap-design.md](.agent-context/prompts/bootstrap-design.md) and [.agent-context/rules/frontend-architecture.md](.agent-context/rules/frontend-architecture.md) before editing code.
|
|
17
|
+
- For UI scope, include a one-line Motion/Palette Decision in the Bootstrap Receipt; product categories are heuristics, not style presets.
|
|
17
18
|
- For UI scope: if `docs/DESIGN.md` or `docs/design-intent.json` is missing, materialize or refine them before implementing UI changes.
|
|
18
19
|
- For backend, API, data, auth, error, event, queue, worker, or distributed-system requests: load the relevant global rules from [.agent-context/rules/](.agent-context/rules); do not create stack-specific governance adapters.
|
|
19
20
|
- For refactor, improve, clean up, or fix requests: inspect the active rules and propose a plan before editing.
|
|
@@ -31,6 +32,10 @@ If your host stops at this file instead of following the full chain, obey the Cr
|
|
|
31
32
|
7. Enforce policy thresholds from [.agent-context/policies/](.agent-context/policies).
|
|
32
33
|
8. Use runtime evidence, structure, and live research signals from project context docs.
|
|
33
34
|
|
|
35
|
+
## Bootstrap Receipt
|
|
36
|
+
|
|
37
|
+
For non-trivial coding, review, planning, or governance work, produce a short Bootstrap Receipt before implementation output: `loaded_files`, `selected_rules`, `skipped_rules`, `unreachable_files`, and `validation_plan`.
|
|
38
|
+
|
|
34
39
|
## Trigger Rules
|
|
35
40
|
|
|
36
41
|
- New project or module requests: propose scope, constraints, and required docs first, then wait for approval.
|
|
@@ -224,6 +224,13 @@ function buildDesignIntentContractObject({
|
|
|
224
224
|
motionDerivationSource: 'Agent must explain how duration, easing, choreography, and reduced-motion alternatives derive from the chosen anchorReference.',
|
|
225
225
|
validationRule: 'Every primitive, semantic, component, typography, spacing, and motion token must trace back to anchorReference; if a token cannot be explained from the anchor, revise the token.',
|
|
226
226
|
},
|
|
227
|
+
motionPaletteDecision: {
|
|
228
|
+
productCategorySignal: 'agent-inferred-starting-heuristic',
|
|
229
|
+
densityDecisionSource: 'Agent must choose motion density from task, content density, brand intent, device/performance, and accessibility evidence; product categories are heuristics, not style presets.',
|
|
230
|
+
requiredInteractionStates: ['default', 'hover', 'focus-visible', 'active', 'disabled', 'loading', 'empty', 'error', 'success', 'transition'],
|
|
231
|
+
paletteAutopilotRisks: ['dark-slate-default', 'cream-beige-default', 'purple-blue-gradient-default', 'monochrome-template-default', 'uniform-card-surface-default'],
|
|
232
|
+
spatialDecision: 'Agent must state whether 3D/canvas/WebGL is useful or unnecessary for product understanding, exploration, or storytelling.',
|
|
233
|
+
},
|
|
227
234
|
libraryResearchStatus: 'pending-verification',
|
|
228
235
|
libraryDecisions: [
|
|
229
236
|
{
|
|
@@ -270,6 +277,7 @@ function buildDesignIntentContractObject({
|
|
|
270
277
|
rolePolicy: 'minimum-semantic-scaffold',
|
|
271
278
|
rolesAreMinimumScaffold: true,
|
|
272
279
|
rolesMustBeAgentDefined: true,
|
|
280
|
+
forbidAutopilotPalettesWithoutEvidence: true,
|
|
273
281
|
intent: inferredKeywords.colorIntent,
|
|
274
282
|
},
|
|
275
283
|
crossViewportAdaptation: {
|
|
@@ -281,13 +289,14 @@ function buildDesignIntentContractObject({
|
|
|
281
289
|
allowMeaningfulMotion: true,
|
|
282
290
|
purpose: inferredKeywords.motionPurpose,
|
|
283
291
|
seedToneLocked: false,
|
|
292
|
+
densitySource: 'task-content-brand-device-accessibility',
|
|
284
293
|
respectReducedMotion: true,
|
|
285
294
|
},
|
|
286
295
|
componentMorphology: {
|
|
287
296
|
requireStateBehaviorMatrix: true,
|
|
288
297
|
preserveIdentityAcrossViewports: true,
|
|
289
298
|
seedBehaviorsRequireRefinement: true,
|
|
290
|
-
stateKeys: ['default', 'focus', 'loading', 'error'],
|
|
299
|
+
stateKeys: ['default', 'hover', 'focus-visible', 'active', 'disabled', 'loading', 'empty', 'error', 'success', 'transition'],
|
|
291
300
|
viewportBehavior: inferredKeywords.componentMorphology,
|
|
292
301
|
},
|
|
293
302
|
accessibilityPolicy: {
|
package/lib/cli/utils.mjs
CHANGED
|
@@ -179,6 +179,14 @@ function isPathWithinPrefix(relativePath, prefixPath) {
|
|
|
179
179
|
|| normalizedRelativePath.startsWith(`${normalizedPrefixPath}/`);
|
|
180
180
|
}
|
|
181
181
|
|
|
182
|
+
const localOnlyGovernanceFiles = new Set([
|
|
183
|
+
'.agent-context/state/active-memory.json',
|
|
184
|
+
]);
|
|
185
|
+
|
|
186
|
+
function isLocalOnlyGovernanceFile(relativePath) {
|
|
187
|
+
return localOnlyGovernanceFiles.has(toPosixRelativePath(relativePath));
|
|
188
|
+
}
|
|
189
|
+
|
|
182
190
|
async function collectRelativeTreeEntries(baseDirectoryPath, relativeRootPath) {
|
|
183
191
|
const files = [];
|
|
184
192
|
const directories = [];
|
|
@@ -203,6 +211,10 @@ async function collectRelativeTreeEntries(baseDirectoryPath, relativeRootPath) {
|
|
|
203
211
|
continue;
|
|
204
212
|
}
|
|
205
213
|
|
|
214
|
+
if (isLocalOnlyGovernanceFile(relativeEntryPath)) {
|
|
215
|
+
continue;
|
|
216
|
+
}
|
|
217
|
+
|
|
206
218
|
files.push(relativeEntryPath);
|
|
207
219
|
}
|
|
208
220
|
}
|
package/package.json
CHANGED
|
@@ -43,6 +43,7 @@ If your host stops at this file instead of following the full chain, obey the Cr
|
|
|
43
43
|
- If \`.agent-instructions.md\` exists, prefer it immediately after this file because it is the compiled project-specific snapshot.
|
|
44
44
|
- Memory continuity does not replace bootstrap loading. It is host-dependent project memory, not a guarantee that instructions were reloaded for this session.
|
|
45
45
|
- For UI, UX, layout, screen, tailwind, frontend, or redesign requests: load [.agent-context/prompts/bootstrap-design.md](.agent-context/prompts/bootstrap-design.md) and [.agent-context/rules/frontend-architecture.md](.agent-context/rules/frontend-architecture.md) before editing code.
|
|
46
|
+
- For UI scope, include a one-line Motion/Palette Decision in the Bootstrap Receipt; product categories are heuristics, not style presets.
|
|
46
47
|
- For UI scope: if \`docs/DESIGN.md\` or \`docs/design-intent.json\` is missing, materialize or refine them before implementing UI changes.
|
|
47
48
|
- For backend, API, data, auth, error, event, queue, worker, or distributed-system requests: load the relevant global rules from [.agent-context/rules/](.agent-context/rules); do not create stack-specific governance adapters.
|
|
48
49
|
- For refactor, improve, clean up, or fix requests: inspect the active rules and propose a plan before editing.
|
|
@@ -60,6 +61,10 @@ If your host stops at this file instead of following the full chain, obey the Cr
|
|
|
60
61
|
7. Enforce policy thresholds from [.agent-context/policies/](.agent-context/policies).
|
|
61
62
|
8. Use runtime evidence, structure, and live research signals from project context docs.
|
|
62
63
|
|
|
64
|
+
## Bootstrap Receipt
|
|
65
|
+
|
|
66
|
+
For non-trivial coding, review, planning, or governance work, produce a short Bootstrap Receipt before implementation output: \`loaded_files\`, \`selected_rules\`, \`skipped_rules\`, \`unreachable_files\`, and \`validation_plan\`.
|
|
67
|
+
|
|
63
68
|
## Trigger Rules
|
|
64
69
|
|
|
65
70
|
- New project or module requests: propose scope, constraints, and required docs first, then wait for approval.
|
|
@@ -82,6 +87,7 @@ The canonical policy source for this repository is [.instructions.md](../.instru
|
|
|
82
87
|
If your host stops at this file, follow this minimum floor:
|
|
83
88
|
- Read \`.agent-instructions.md\` next when it exists.
|
|
84
89
|
- For UI or redesign requests, load [.agent-context/prompts/bootstrap-design.md](../.agent-context/prompts/bootstrap-design.md) and [.agent-context/rules/frontend-architecture.md](../.agent-context/rules/frontend-architecture.md) before coding.
|
|
90
|
+
- For UI scope, include a one-line Motion/Palette Decision in the Bootstrap Receipt; product categories are heuristics, not style presets.
|
|
85
91
|
- If UI scope and \`docs/DESIGN.md\` or \`docs/design-intent.json\` is missing, materialize them before UI implementation.
|
|
86
92
|
- For backend/API/data/auth/event requests, load relevant global rules from [.agent-context/rules/](../.agent-context/rules) and do not create stack-specific governance adapters.
|
|
87
93
|
- Memory continuity is host-dependent project memory and does not replace bootstrap loading.
|
|
@@ -96,6 +102,10 @@ If your host stops at this file, follow this minimum floor:
|
|
|
96
102
|
6. Apply state awareness from [.agent-context/state/](../.agent-context/state) and thresholds from [.agent-context/policies/](../.agent-context/policies).
|
|
97
103
|
7. Resolve runtime, structure, and dependency choices from project context docs plus live evidence.
|
|
98
104
|
|
|
105
|
+
## Bootstrap Receipt
|
|
106
|
+
|
|
107
|
+
For non-trivial coding, review, planning, or governance work, produce a short Bootstrap Receipt before implementation output: \`loaded_files\`, \`selected_rules\`, \`skipped_rules\`, \`unreachable_files\`, and \`validation_plan\`.
|
|
108
|
+
|
|
99
109
|
## Completion Gate
|
|
100
110
|
|
|
101
111
|
Run [.agent-context/review-checklists/pr-checklist.md](../.agent-context/review-checklists/pr-checklist.md) before declaring work complete.
|
|
@@ -114,6 +124,7 @@ Canonical policy source: [.instructions.md](../.instructions.md).
|
|
|
114
124
|
If your host stops at this file, follow this minimum floor:
|
|
115
125
|
- Read \`.agent-instructions.md\` next when it exists.
|
|
116
126
|
- For UI or redesign requests, load [.agent-context/prompts/bootstrap-design.md](../.agent-context/prompts/bootstrap-design.md) and [.agent-context/rules/frontend-architecture.md](../.agent-context/rules/frontend-architecture.md) before coding.
|
|
127
|
+
- For UI scope, include a one-line Motion/Palette Decision in the Bootstrap Receipt; product categories are heuristics, not style presets.
|
|
117
128
|
- If UI scope and \`docs/DESIGN.md\` or \`docs/design-intent.json\` is missing, materialize them before UI implementation.
|
|
118
129
|
- For backend/API/data/auth/event requests, load relevant global rules from [.agent-context/rules/](../.agent-context/rules) and do not create stack-specific governance adapters.
|
|
119
130
|
- Memory continuity is host-dependent project memory and does not replace bootstrap loading.
|
|
@@ -128,6 +139,10 @@ If your host stops at this file, follow this minimum floor:
|
|
|
128
139
|
6. Apply state awareness from [.agent-context/state/](../.agent-context/state) and policy thresholds from [.agent-context/policies/](../.agent-context/policies).
|
|
129
140
|
7. Resolve runtime, structure, and dependency choices from project context docs plus live evidence.
|
|
130
141
|
|
|
142
|
+
## Bootstrap Receipt
|
|
143
|
+
|
|
144
|
+
For non-trivial coding, review, planning, or governance work, produce a short Bootstrap Receipt before implementation output: \`loaded_files\`, \`selected_rules\`, \`skipped_rules\`, \`unreachable_files\`, and \`validation_plan\`.
|
|
145
|
+
|
|
131
146
|
## Completion Gate
|
|
132
147
|
|
|
133
148
|
Run [.agent-context/review-checklists/pr-checklist.md](../.agent-context/review-checklists/pr-checklist.md) before declaring completion.
|
|
@@ -265,6 +265,8 @@ export const REQUIRED_UI_DESIGN_AUTOMATION_SNIPPETS = [
|
|
|
265
265
|
'docs/DESIGN.md',
|
|
266
266
|
'docs/design-intent.json',
|
|
267
267
|
'does not replace bootstrap loading',
|
|
268
|
+
'Motion/Palette Decision',
|
|
269
|
+
'product categories are heuristics',
|
|
268
270
|
'perform live web research',
|
|
269
271
|
],
|
|
270
272
|
},
|
|
@@ -275,6 +277,8 @@ export const REQUIRED_UI_DESIGN_AUTOMATION_SNIPPETS = [
|
|
|
275
277
|
'UI Design Mode',
|
|
276
278
|
'bootstrap-design.md',
|
|
277
279
|
'frontend-architecture.md',
|
|
280
|
+
'Motion/Palette Decision',
|
|
281
|
+
'product categories are heuristics',
|
|
278
282
|
'do not eagerly load unrelated backend-only rules',
|
|
279
283
|
'valid style context',
|
|
280
284
|
'External references, prior-chat memory, unrelated-project visuals, and remembered screenshots are tainted',
|
|
@@ -292,6 +296,8 @@ export const REQUIRED_UI_DESIGN_AUTOMATION_SNIPPETS = [
|
|
|
292
296
|
'Responsive Recomposition Plan',
|
|
293
297
|
'source of truth',
|
|
294
298
|
'research current official docs',
|
|
299
|
+
'motionPaletteDecision',
|
|
300
|
+
'product categories are heuristics',
|
|
295
301
|
'Responsive design means recomposition, not resizing.',
|
|
296
302
|
'agent-chosen visual direction',
|
|
297
303
|
'viewport mutation rules',
|
|
@@ -349,9 +355,12 @@ export const REQUIRED_UI_DESIGN_AUTOMATION_SNIPPETS = [
|
|
|
349
355
|
'seedPolicy',
|
|
350
356
|
'structure-first-scaffold',
|
|
351
357
|
'colorTruth',
|
|
358
|
+
'motionPaletteDecision',
|
|
359
|
+
'forbidAutopilotPalettesWithoutEvidence',
|
|
352
360
|
'rolesAreMinimumScaffold',
|
|
353
361
|
'crossViewportAdaptation',
|
|
354
362
|
'motionSystem',
|
|
363
|
+
'densitySource',
|
|
355
364
|
'seedToneLocked',
|
|
356
365
|
'componentMorphology',
|
|
357
366
|
'seedBehaviorsRequireRefinement',
|
|
@@ -384,6 +384,34 @@ export async function validateInstructionAdapters(context) {
|
|
|
384
384
|
|
|
385
385
|
const canonicalInstructionContent = normalizeLineEndings(await readTextFile(CANONICAL_INSTRUCTION_PATH));
|
|
386
386
|
const canonicalSnapshotHash = createHash('sha256').update(canonicalInstructionContent).digest('hex');
|
|
387
|
+
const requiredBootstrapReceiptSnippets = [
|
|
388
|
+
'Bootstrap Receipt',
|
|
389
|
+
'loaded_files',
|
|
390
|
+
'selected_rules',
|
|
391
|
+
'skipped_rules',
|
|
392
|
+
'unreachable_files',
|
|
393
|
+
'validation_plan',
|
|
394
|
+
];
|
|
395
|
+
const requiredUiReadabilitySnippets = [
|
|
396
|
+
'Motion/Palette Decision',
|
|
397
|
+
'product categories are heuristics',
|
|
398
|
+
];
|
|
399
|
+
|
|
400
|
+
for (const requiredBootstrapReceiptSnippet of requiredBootstrapReceiptSnippets) {
|
|
401
|
+
if (canonicalInstructionContent.includes(requiredBootstrapReceiptSnippet)) {
|
|
402
|
+
pass(`.instructions.md includes bootstrap receipt snippet: ${requiredBootstrapReceiptSnippet}`);
|
|
403
|
+
} else {
|
|
404
|
+
fail(`.instructions.md is missing bootstrap receipt snippet: ${requiredBootstrapReceiptSnippet}`);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
for (const requiredUiReadabilitySnippet of requiredUiReadabilitySnippets) {
|
|
409
|
+
if (canonicalInstructionContent.includes(requiredUiReadabilitySnippet)) {
|
|
410
|
+
pass(`.instructions.md includes UI readability snippet: ${requiredUiReadabilitySnippet}`);
|
|
411
|
+
} else {
|
|
412
|
+
fail(`.instructions.md is missing UI readability snippet: ${requiredUiReadabilitySnippet}`);
|
|
413
|
+
}
|
|
414
|
+
}
|
|
387
415
|
|
|
388
416
|
for (const thinAdapterPath of THIN_ADAPTER_PATHS) {
|
|
389
417
|
const absoluteAdapterPath = join(ROOT_DIR, thinAdapterPath);
|
|
@@ -404,6 +432,22 @@ export async function validateInstructionAdapters(context) {
|
|
|
404
432
|
fail(`${thinAdapterPath} must declare Adapter Mode: thin and Adapter Source: .instructions.md`);
|
|
405
433
|
}
|
|
406
434
|
|
|
435
|
+
for (const requiredBootstrapReceiptSnippet of requiredBootstrapReceiptSnippets) {
|
|
436
|
+
if (thinAdapterContent.includes(requiredBootstrapReceiptSnippet)) {
|
|
437
|
+
pass(`${thinAdapterPath} includes bootstrap receipt snippet: ${requiredBootstrapReceiptSnippet}`);
|
|
438
|
+
} else {
|
|
439
|
+
fail(`${thinAdapterPath} is missing bootstrap receipt snippet: ${requiredBootstrapReceiptSnippet}`);
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
for (const requiredUiReadabilitySnippet of requiredUiReadabilitySnippets) {
|
|
444
|
+
if (thinAdapterContent.includes(requiredUiReadabilitySnippet)) {
|
|
445
|
+
pass(`${thinAdapterPath} includes UI readability snippet: ${requiredUiReadabilitySnippet}`);
|
|
446
|
+
} else {
|
|
447
|
+
fail(`${thinAdapterPath} is missing UI readability snippet: ${requiredUiReadabilitySnippet}`);
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
|
|
407
451
|
const hashMatch = thinAdapterContent.match(/Canonical Snapshot SHA256:\s*([a-f0-9]{64})/);
|
|
408
452
|
if (!hashMatch) {
|
|
409
453
|
fail(`${thinAdapterPath} must declare Canonical Snapshot SHA256`);
|