@ryuenn3123/agentic-senior-core 4.2.5 → 4.2.7
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 +38 -1
- package/.agent-context/prompts/research-design.md +42 -0
- package/lib/cli/project-scaffolder/design-contract/sections/conceptual-anchor.mjs +6 -5
- package/lib/cli/project-scaffolder/design-contract.mjs +17 -0
- package/package.json +1 -1
- package/scripts/validate/coverage-checks.mjs +1 -1
|
@@ -4,6 +4,16 @@ Use this prompt for UI, UX, frontend layout, screen, Tailwind, animation, 3D, ca
|
|
|
4
4
|
Create or refine `docs/DESIGN.md` for human reasoning and `docs/design-intent.json` for machine-readable design intent, guardrails, and review signals.
|
|
5
5
|
|
|
6
6
|
This contract is a decision scaffold, not a style preset. We guide the agent; we do not pick the final style, stack, framework, palette, typography, layout paradigm, or animation library offline.
|
|
7
|
+
|
|
8
|
+
## MANDATORY FIRST STEP
|
|
9
|
+
|
|
10
|
+
Check `docs/design-intent.json`:
|
|
11
|
+
- If `status` contains "seed" OR `researchDossier.metadata.researchVerifiedAt` is null → STOP.
|
|
12
|
+
- Do NOT write UI code.
|
|
13
|
+
- Do NOT fill `conceptualAnchor`, color tokens, typography tokens, or motion tokens with concrete values.
|
|
14
|
+
- **Existing UI exception**: If the project already has a mature UI and the user only asked for an additive feature (not a redesign), you may skip Sections 3-5 of `research-design.md`. Instead, document the existing direction as the `conceptualAnchor`, set token classifications to `continuity-retained`, set `status` to `active`, set `researchVerifiedAt` to today's date, and proceed.
|
|
15
|
+
- Otherwise, run `research-design.md` Sections 3, 4, and 5 first. All three must produce filled artifacts before proceeding.
|
|
16
|
+
- The scaffold file is a structure only. Filling placeholders without completing research is a violation of this contract.
|
|
7
17
|
## Authority
|
|
8
18
|
- Treat `.agent-context/` and current project docs as technical authority.
|
|
9
19
|
- Treat `README.md` as public and developer overview, setup, usage, and user-facing context only. Do not use it as coding, architecture, or design authority when `.agent-context/` gives a stricter rule.
|
|
@@ -23,13 +33,40 @@ This contract is a decision scaffold, not a style preset. We guide the agent; we
|
|
|
23
33
|
8. Set `derivedTokenLogic.tokenContinuityClassification` for each of typography, palette, motion, and spacing. Use `anchor-derived` only when the token choice is causally tied to the anchor's real-world reality. Use `continuity-retained` when the token is kept from a previous design iteration without re-derivation. Use `newly-introduced` when the token is fresh but not anchor-derived. If any token category is `continuity-retained`, the typography, palette, or motion entry in `researchDossier.metadata.antiRepeatLedger` stays as historical record, and the classification declares the retention is intentional with explicit rationale recorded in the matching `derivationSource` field.
|
|
24
34
|
9. After agent and user select an anchor, set `researchDossier.metadata.researchVerifiedAt` to today's ISO date and flip `status` from any seed value to `active`. This closes the freshness window for additive UI tasks within `freshnessWindowDays`.
|
|
25
35
|
10. Complete the Live Source Freshness Gate from `research-design.md` before claiming that a visual pattern, library, browser feature, accessibility requirement, or interaction style is current. Record `sourceFreshness` and `evidenceTable[]` in `docs/design-intent.json`.
|
|
36
|
+
## Internal Vocabulary Rule
|
|
37
|
+
|
|
38
|
+
The following terms are internal process labels only.
|
|
39
|
+
They must NEVER appear in:
|
|
40
|
+
- UI copy or component text
|
|
41
|
+
- Public-facing documentation
|
|
42
|
+
- Section headings in DESIGN.md
|
|
43
|
+
- Any text the user reads in the product
|
|
44
|
+
|
|
45
|
+
Forbidden in output: evidence, dossier, anchor, category-code,
|
|
46
|
+
morphological, rename test, freshness gate, ledger, accession,
|
|
47
|
+
provenance, custody, specimen, taxonomy, invariant.
|
|
48
|
+
|
|
49
|
+
Translate all decisions into plain product language before writing
|
|
50
|
+
them into DESIGN.md or any UI-facing artifact.
|
|
51
|
+
|
|
52
|
+
Good: "Typography uses a serif display font paired with monospace for
|
|
53
|
+
code blocks, creating clear hierarchy between narrative and technical content."
|
|
54
|
+
|
|
55
|
+
Bad: "The anchor-derived typographic decision pairs a display serif
|
|
56
|
+
with strict mono per the morphological exploration output."
|
|
57
|
+
|
|
26
58
|
## Creative Commitment Gate
|
|
27
59
|
Before broad compliance review or UI implementation, record an agent-chosen visual direction in both design docs:
|
|
28
60
|
- one concrete real-world anchor reference
|
|
29
61
|
- one signature motion behavior more specific than "smooth"
|
|
30
62
|
- one typographic decision with meaningful role contrast
|
|
31
63
|
- one authored visual bet visible in the first viewport
|
|
32
|
-
Reject generic anchors. Do not accept "modern", "clean", "premium", "expressive", "minimal", or "bold" as the anchor. Name a
|
|
64
|
+
Reject generic anchors. Do not accept "modern", "clean", "premium", "expressive", "minimal", or "bold" as the anchor. Name a specific real-world reference. Valid options include:
|
|
65
|
+
- A specific premium digital experience (e.g., "[Specific Brand] hardware launch page full-bleed section transitions", "[Specific Tool] homepage keyboard-first density rhythm", "[Specific Fintech] marketing site gradient mesh motion")
|
|
66
|
+
- A cinematic campaign or editorial system
|
|
67
|
+
- A material, instrument, or physical mechanism
|
|
68
|
+
|
|
69
|
+
The reference must be googleable and specific. "Brand-X-style" fails. "[Brand X] M3 reveal page scroll-locked section reveals" passes.
|
|
33
70
|
## Dynamic Avant-Garde Anchor Engine
|
|
34
71
|
If no current-task research or visual reference exists, activate the Dynamic Avant-Garde Anchor Engine before coding.
|
|
35
72
|
Rules:
|
|
@@ -69,6 +69,47 @@ Before any visual choice, write a structured product reading:
|
|
|
69
69
|
|
|
70
70
|
Output: `productReading` block. Each field must be one sentence, evidence-backed from repo or brief. Speculation is not allowed; if a field is unknown, name it as such and stop until the user resolves it.
|
|
71
71
|
|
|
72
|
+
## Reference Routing
|
|
73
|
+
|
|
74
|
+
After Section 1, identify the product category. Then run web_search
|
|
75
|
+
and web_fetch on the matching domains below (or other modern, highly-regarded digital product equivalents) before picking any anchor.
|
|
76
|
+
|
|
77
|
+
Developer tool / CLI / AI infrastructure:
|
|
78
|
+
→ Linear, Raycast, Vercel, Warp, Resend, Railway (or equivalents)
|
|
79
|
+
|
|
80
|
+
SaaS / B2B productivity:
|
|
81
|
+
→ Notion, Loom, Cron, Superhuman, Intercom (or equivalents)
|
|
82
|
+
|
|
83
|
+
AI product / API:
|
|
84
|
+
→ Anthropic, Perplexity, ElevenLabs, Replicate, Mistral (or equivalents)
|
|
85
|
+
|
|
86
|
+
Ecommerce:
|
|
87
|
+
→ SSENSE, Allbirds, Represent, Shopify examples (or equivalents)
|
|
88
|
+
|
|
89
|
+
Design tool / creative:
|
|
90
|
+
→ Framer, Spline, Rive, Penpot (or equivalents)
|
|
91
|
+
|
|
92
|
+
Consumer / mobile:
|
|
93
|
+
→ Arc browser, Craft, Things, Bear (or equivalents)
|
|
94
|
+
|
|
95
|
+
Data / analytics:
|
|
96
|
+
→ Retool, Posthog, Metabase, Grafana (or equivalents)
|
|
97
|
+
|
|
98
|
+
For every product category:
|
|
99
|
+
→ Also check: Awwwards, Godly.website, and Layers.to for
|
|
100
|
+
state-of-the-art quality references in that category.
|
|
101
|
+
|
|
102
|
+
DO NOT fetch: Wikipedia, Dribbble templates, or generic blog posts
|
|
103
|
+
about "best UI design practices."
|
|
104
|
+
|
|
105
|
+
For each reference: fetch the actual page this session, record what
|
|
106
|
+
mechanic or hierarchy is borrowed, and explicitly state what is NOT
|
|
107
|
+
borrowed (palette, component skin, layout rhythm).
|
|
108
|
+
|
|
109
|
+
If the anchor concept you're considering would make sense to someone
|
|
110
|
+
from 1920, it's too archival. The anchor must be legible to someone
|
|
111
|
+
who uses the web today.
|
|
112
|
+
|
|
72
113
|
## Section 2 — Reference Intake
|
|
73
114
|
|
|
74
115
|
Reference material is fuel for variance, not a style source.
|
|
@@ -163,6 +204,7 @@ From the selected morphological combination, generate exactly five anchor candid
|
|
|
163
204
|
|
|
164
205
|
Hard constraints on anchors:
|
|
165
206
|
- The anchor must be concrete and googleable. "Modern", "clean", "premium", "expressive", "minimal", "bold", "futuristic", "elegant" are not anchors.
|
|
207
|
+
- Specific premium digital products are valid anchors when the borrowed element is an interaction mechanic, hierarchy pattern, or motion behavior — not a palette or brand. Be specific enough that the reference fails the rename test.
|
|
166
208
|
- Do not default to spatial place metaphors such as room, darkroom, control room, counting room, war room, studio, lab, cockpit, command center. Use them only when the product genuinely depends on a physical place model. Prefer artifacts, custody flows, instruments, data behaviors, materials, editorial systems, service rituals, or interaction mechanisms.
|
|
167
209
|
- Pass the strengthened rename test: mentally rename the product to three genuinely different categories. Categories must be remote from each other and from the actual product (for example, if the product is a health app, test against fintech dashboard, kids educational game, and industrial equipment monitoring console).
|
|
168
210
|
|
|
@@ -32,7 +32,7 @@ export function buildConceptualAnchorSection() {
|
|
|
32
32
|
doNotRevealHiddenCandidateList: true,
|
|
33
33
|
outputOnlyChosenAnchor: true,
|
|
34
34
|
avoidSpatialPlaceMetaphorByDefault: true,
|
|
35
|
-
|
|
35
|
+
preferSpecificOverGeneric: true,
|
|
36
36
|
},
|
|
37
37
|
creativeCommitmentPolicy: {
|
|
38
38
|
requiredBeforeComplianceReview: true,
|
|
@@ -63,13 +63,14 @@ export function buildConceptualAnchorSection() {
|
|
|
63
63
|
'command-center',
|
|
64
64
|
],
|
|
65
65
|
sourceDomains: [
|
|
66
|
-
'
|
|
66
|
+
'premium-interactive-web-experiences',
|
|
67
|
+
'cinematic-campaign-and-product-launch',
|
|
68
|
+
'contemporary-editorial-digital-design',
|
|
67
69
|
'cinematic-behavior-and-transition-systems',
|
|
68
70
|
'experimental-editorial-structure',
|
|
69
|
-
'
|
|
70
|
-
'workflow-and-custody-systems',
|
|
71
|
+
'complex-physical-engineering',
|
|
71
72
|
'material-artifacts-and-instruments',
|
|
72
|
-
'
|
|
73
|
+
'workflow-and-custody-systems',
|
|
73
74
|
],
|
|
74
75
|
visualRiskBudget: {
|
|
75
76
|
mode: 'high-distinctiveness-with-accessibility-and-performance-guardrails',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// @file-size-exception: Structural validation gates expanded size
|
|
1
2
|
/**
|
|
2
3
|
* Design Intent Contract builder. Composes the structured contract from
|
|
3
4
|
* focused section builders living under `design-contract/`. Public exports
|
|
@@ -57,6 +58,18 @@ function buildDesignIntentContractObject({
|
|
|
57
58
|
});
|
|
58
59
|
|
|
59
60
|
return {
|
|
61
|
+
_gate: {
|
|
62
|
+
phase: 'scaffold-only',
|
|
63
|
+
instruction: 'DO NOT fill conceptualAnchor, derivedTokenLogic, or any token values until research-design.md Sections 3, 4, and 5 are complete. Do not simplify or rewrite this scaffold. Fill fields in-place after research.',
|
|
64
|
+
blockedFields: [
|
|
65
|
+
'conceptualAnchor.anchorReference',
|
|
66
|
+
'conceptualAnchor.categoryCodes.candidateEntries',
|
|
67
|
+
'conceptualAnchor.morphologicalExploration.selectedCombination',
|
|
68
|
+
'conceptualAnchor.anchorCandidates.candidates',
|
|
69
|
+
'derivedTokenLogic.colorDerivationSource',
|
|
70
|
+
'motionPaletteDecision'
|
|
71
|
+
]
|
|
72
|
+
},
|
|
60
73
|
mode: 'dynamic',
|
|
61
74
|
status,
|
|
62
75
|
seedPolicy: {
|
|
@@ -408,6 +421,10 @@ export function buildDesignIntentSeed({
|
|
|
408
421
|
*/
|
|
409
422
|
export const __DESIGN_CONTRACT_SCHEMA_INDEX__ = Object.freeze([
|
|
410
423
|
// top-level structural fields
|
|
424
|
+
'_gate',
|
|
425
|
+
'phase',
|
|
426
|
+
'instruction',
|
|
427
|
+
'blockedFields',
|
|
411
428
|
'tokenSystem',
|
|
412
429
|
'seedPolicy',
|
|
413
430
|
'structure-first-scaffold',
|
package/package.json
CHANGED
|
@@ -355,7 +355,7 @@ export async function validateInstructionAdapters(context) {
|
|
|
355
355
|
];
|
|
356
356
|
const instructionFootprintLimits = [
|
|
357
357
|
{ path: 'AGENTS.md', maxLines: 180 },
|
|
358
|
-
{ path: '.agent-context/prompts/bootstrap-design.md', maxLines:
|
|
358
|
+
{ path: '.agent-context/prompts/bootstrap-design.md', maxLines: 220 },
|
|
359
359
|
{ path: '.agent-context/rules/frontend-architecture.md', maxLines: 180 },
|
|
360
360
|
];
|
|
361
361
|
|