@ryuenn3123/agentic-senior-core 3.0.45 → 3.0.46
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 +10 -10
- package/.agent-context/prompts/init-project.md +3 -1
- package/.agent-context/rules/efficiency-vs-hype.md +3 -0
- package/.agent-context/rules/frontend-architecture.md +4 -2
- package/.cursor/rules/agentic-senior-core.mdc +1 -1
- package/.cursorrules +1 -1
- package/.gemini/instructions.md +1 -1
- package/.github/copilot-instructions.md +1 -1
- package/.github/instructions/agentic-senior-core.instructions.md +1 -1
- package/.instructions.md +5 -3
- package/.windsurf/rules/agentic-senior-core.md +1 -1
- package/.windsurfrules +1 -1
- package/AGENTS.md +1 -1
- package/CLAUDE.md +1 -1
- package/GEMINI.md +1 -1
- package/lib/cli/project-scaffolder/design-contract/validation.mjs +2 -1
- package/lib/cli/project-scaffolder/design-contract.mjs +38 -2
- package/lib/cli/project-scaffolder/prompt-builders.mjs +7 -1
- package/package.json +1 -1
|
@@ -5,7 +5,6 @@ Use this prompt for UI, UX, frontend layout, screen, Tailwind, animation, 3D, ca
|
|
|
5
5
|
Create or refine `docs/DESIGN.md` for human reasoning and `docs/design-intent.json` for machine-readable design intent, guardrails, and review signals.
|
|
6
6
|
|
|
7
7
|
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.
|
|
8
|
-
|
|
9
8
|
## Authority
|
|
10
9
|
- Treat `.agent-context/` and current project docs as technical authority.
|
|
11
10
|
- 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.
|
|
@@ -13,7 +12,6 @@ This contract is a decision scaffold, not a style preset. We guide the agent; we
|
|
|
13
12
|
- Treat prior-chat visuals, unrelated project memory, benchmark screenshots, and famous-product aesthetics as tainted context unless the user explicitly approves continuity.
|
|
14
13
|
- Keep external references non-copying; extract constraints only.
|
|
15
14
|
- Before choosing a new UI, animation, scroll, 3D, canvas, chart, icon, styling, or component library, research current official docs.
|
|
16
|
-
|
|
17
15
|
## Required Order
|
|
18
16
|
1. Read `AGENTS.md`, this prompt, `../rules/frontend-architecture.md`, current UI code, current project docs, and existing design docs.
|
|
19
17
|
2. Refine existing `docs/DESIGN.md` and `docs/design-intent.json`; do not replace them blindly.
|
|
@@ -21,7 +19,6 @@ This contract is a decision scaffold, not a style preset. We guide the agent; we
|
|
|
21
19
|
4. Record `motionPaletteDecision` before UI code; product categories are heuristics, not style presets.
|
|
22
20
|
5. Encode `repoEvidence.designEvidenceSummary` when onboarding or detector evidence exists.
|
|
23
21
|
6. Keep both design docs synchronized after implementation.
|
|
24
|
-
|
|
25
22
|
## Creative Commitment Gate
|
|
26
23
|
Before broad compliance review or UI implementation, record an agent-chosen visual direction in both design docs:
|
|
27
24
|
- one concrete real-world anchor reference
|
|
@@ -30,7 +27,6 @@ Before broad compliance review or UI implementation, record an agent-chosen visu
|
|
|
30
27
|
- one authored visual bet visible in the first viewport
|
|
31
28
|
|
|
32
29
|
Reject generic anchors. Do not accept "modern", "clean", "premium", "expressive", "minimal", or "bold" as the anchor. Name a material, instrument, artifact class, architectural system, editorial genre, cinematic behavior, exhibition system, scientific apparatus, or industrial mechanism.
|
|
33
|
-
|
|
34
30
|
## Dynamic Avant-Garde Anchor Engine
|
|
35
31
|
If no current-task research or visual reference exists, activate the Dynamic Avant-Garde Anchor Engine before coding.
|
|
36
32
|
|
|
@@ -40,10 +36,11 @@ Rules:
|
|
|
40
36
|
- Discard the two safest or most predictable options.
|
|
41
37
|
- Output only the chosen anchor, specific reference point, and rationale.
|
|
42
38
|
- Forbid final anchors named dashboard, portal, cards, admin panel, SaaS shell, web app shell, or minimalist interface.
|
|
39
|
+
- Do not default to spatial place metaphors such as room, darkroom, control room, counting room, war room, studio, lab, cockpit, or command center. Use them only when the product truly depends on a physical place model.
|
|
40
|
+
- Prefer artifacts, custody flows, instruments, data behaviors, materials, editorial systems, service rituals, or interaction mechanisms over "where the interface lives" as the anchor.
|
|
43
41
|
- Derive typography, spacing, density, color behavior, morphology, motion, and responsive composition from the chosen anchor.
|
|
44
42
|
- Translate the anchor non-literally first. Anchor artifacts are evidence for behavior, hierarchy, density, typography, state language, and motion, not automatic UI chrome.
|
|
45
43
|
- Use reduced-motion fallbacks instead of suppressing motion.
|
|
46
|
-
|
|
47
44
|
## Creative Ambition Floor
|
|
48
45
|
Before UI code, record:
|
|
49
46
|
- one product-derived palette move
|
|
@@ -52,19 +49,18 @@ Before UI code, record:
|
|
|
52
49
|
- at least three at-a-glance product-specific signals for new screens or broad redesigns
|
|
53
50
|
|
|
54
51
|
Do not ship AI-safe UI. Record exact drift signals in `reviewRubric`; at minimum reject decorative grid wallpaper, default line backgrounds, calibration-mark wallpaper, soft glow backgrounds, generic abstract marks, testing/demo/placeholder UI copy, terminal-only user flows, and first-output composition with only local copy swapped in when they have no product function. Treat measurement, calibration, crop, route, timeline, and inspection marks as task overlays or control affordances only; never promote them to the page background, hero backdrop, or first-output visual texture. If a conceptual anchor suggests a forbidden motif, the forbidden motif wins; express the anchor through workflow, hierarchy, density, typography, material behavior, state design, and interaction grammar instead of literal wallpaper.
|
|
55
|
-
|
|
56
52
|
## Brave Redesign Default
|
|
57
53
|
For UI design work, the agent owns the ambition decision. For broad screens, redesigns, or new visual systems, treat expressive motion, spatial hierarchy, distinctive composition, and product-specific interaction as the baseline even when the user did not say "rich". Do not reduce the request to a safer version of the existing UI, a static implementation, or a component-kit rearrangement because research or dependency selection feels inconvenient.
|
|
58
54
|
|
|
59
55
|
If the expressive path needs a new motion, 3D, canvas, scroll, or interaction library and web search is available, perform the official-doc research and record the decision. If web search is unavailable, use already-present dependencies or native browser capabilities while preserving the intended ambition, then mark library verification as pending.
|
|
60
56
|
|
|
61
57
|
Only downshift ambition after naming the concrete blocker: product fit, content density, measured performance budget, accessibility, device support, package conflict, security risk, or missing runtime capability. A new dependency, package count, or vague performance concern is not a blocker by itself. Pair every downshift with a replacement interaction quality that still changes composition, hierarchy, feedback, or memorability.
|
|
62
|
-
|
|
63
58
|
## Design Flexibility Layer
|
|
64
|
-
|
|
65
59
|
`docs/design-intent.json` must separate locked outcomes from flexible expression. The machine contract keeps review invariants stable; it must not freeze exact aesthetic implementation unless repo evidence, accessibility validation, implementation constraints, or explicit user approval locks it.
|
|
66
60
|
|
|
67
|
-
Record `designFlexibilityPolicy`: lock user goals, runtime constraints, accessibility, production readiness, forbidden patterns, and approved continuity; keep exact palette primitives, font families, radius/shadow values, component-kit theme mapping, signature move implementation,
|
|
61
|
+
Record `designFlexibilityPolicy`: lock user goals, runtime constraints, accessibility, production readiness, forbidden patterns, and approved continuity; keep exact palette primitives, font families, radius/shadow values, component-kit theme mapping, signature move implementation, literal anchor artifacts, and spatial metaphors flexible until validated or approved. Semantic roles are required; exact primitives are not automatically locked. Required experience outcomes are separate from candidate implementation moves. Libraries supply behavior, accessibility, primitives, and delivery speed; the project supplies final composition, theme, morphology, and visual language.
|
|
62
|
+
## External Inspiration Boundary
|
|
63
|
+
Using outside websites, benchmark apps, galleries, or component examples is useful for constraint discovery, interaction mechanics, and implementation options, but never as a style source to imitate. Extract why a pattern works, then translate it into a current-project rule. Do not copy layout rhythm, palette, component skin, visual metaphor, or brand posture from a reference unless the user explicitly approves that continuity and it passes product fit.
|
|
68
64
|
|
|
69
65
|
## AI Color and Template Residue Audit
|
|
70
66
|
AI color drift happens when a palette uses safe defaults before product meaning.
|
|
@@ -108,8 +104,12 @@ If web search is unavailable:
|
|
|
108
104
|
- Use native CSS, browser APIs, or already-present dependencies.
|
|
109
105
|
- Set `libraryResearchStatus` to `pending-verification`.
|
|
110
106
|
|
|
111
|
-
Treat unresearched dependency choices as review findings. Dynamic UI Foundation Selection: do not default to shadcn/ui, Tailwind-only, native-only, or any component kit because it is familiar. Choose the foundation from product type, interaction complexity, accessibility needs, design ambition, team/runtime constraints, bundle/runtime cost, and current official docs.
|
|
107
|
+
Treat unresearched dependency choices as review findings. Dynamic UI Foundation Selection: do not default to shadcn/ui, Tailwind-only, native-only, or any component kit because it is familiar, and do not avoid them because a guardrail exists. Choose the foundation from product type, interaction complexity, accessibility needs, design ambition, team/runtime constraints, bundle/runtime cost, and current official docs.
|
|
112
108
|
Ready-made primitives are allowed when they improve behavior, accessibility, speed, or maintainability. The library supplies mechanics; the project supplies visual language. Reject default component-kit styling without product rationale, but do not reject a modern lightweight library solely because a dependency was needed.
|
|
109
|
+
|
|
110
|
+
Tailwind-first is valid only as an implementation fit, not as ideology or anti-ideology. Use Tailwind utilities and CSS-first tokens when they fit the chosen stack and team, but do not make pure Tailwind, vanilla CSS, shadcn/ui, or any component kit the default answer when product evidence points to stronger primitives, charts, motion, gestures, canvas, or framework tooling.
|
|
111
|
+
|
|
112
|
+
For fresh projects, prefer official framework scaffolders or setup commands when current official docs show they create the supported project shape. Manual from-scratch file assembly is acceptable for tiny prototypes, educational exercises, repo-specific constraints, or when official scaffolders cannot satisfy the approved architecture; document that reason.
|
|
113
113
|
## Zero-Based Redesign Protocol
|
|
114
114
|
|
|
115
115
|
When the user says "redesign from zero", "redesain dari 0", "ulang dari 0", or "research ulang":
|
|
@@ -10,12 +10,13 @@ When a new project is created or initialized, the agent must automatically:
|
|
|
10
10
|
3. Review dynamic runtime signals from [.agent-context/state/onboarding-report.json](../state/onboarding-report.json), repository evidence, task constraints, and live official documentation when runtime or ecosystem facts matter.
|
|
11
11
|
4. If Docker or Compose is in scope, load [docker-runtime.md](../rules/docker-runtime.md) and verify the latest official Docker guidance before authoring container assets. Materialize the selected development/production assets rather than stopping at prose.
|
|
12
12
|
5. For unresolved framework or package setup, recommend the latest stable compatible dependency set and official framework setup flow from live official documentation before coding unless a documented compatibility constraint blocks it.
|
|
13
|
+
6. Do not default fresh web projects to Next.js, Tailwind-only styling, shadcn/ui, Vite, or any framework by habit, and do not avoid them because of this guard when they are the strongest fit. Treat explicit user constraints as constraints; otherwise compare project needs, runtime boundaries, hosting, data flow, team workflow, and official setup guidance before recommending.
|
|
13
14
|
|
|
14
15
|
## Required Planning Mode
|
|
15
16
|
|
|
16
17
|
If the user describes a project or feature, the agent must:
|
|
17
18
|
1. Clarify the delivery goals, runtime assumptions, constraints, and must-have capabilities before choosing implementation shape.
|
|
18
|
-
2. If the user already named a stack or framework, treat it as an explicit constraint. If not, produce a short evidence-backed recommendation from the brief, repo evidence, and live official documentation before coding.
|
|
19
|
+
2. If the user already named a stack or framework, treat it as an explicit constraint. If not, produce a short evidence-backed recommendation from the brief, repo evidence, and live official documentation before coding. Include at least one plausible alternative when the default-looking option is Next.js, Tailwind-only styling, shadcn/ui, or another familiar web stack.
|
|
19
20
|
3. For existing projects, inspect real files first. Do not derive product name, description, runtime, architecture, or design direction from the folder name alone.
|
|
20
21
|
4. Draft a high-level structure plan plus the docs/bootstrap artifacts that must exist before coding.
|
|
21
22
|
5. Wait for user approval before scaffolding the project.
|
|
@@ -45,6 +46,7 @@ If the user specifies a framework, runtime, or architecture constraint, the agen
|
|
|
45
46
|
- Every module must follow [architecture.md](../rules/architecture.md).
|
|
46
47
|
- Every dependency must be justified per [efficiency-vs-hype.md](../rules/efficiency-vs-hype.md).
|
|
47
48
|
- Use official framework setup commands or canonical starter flows when they produce newer, better-supported dependency defaults than manual package assembly.
|
|
49
|
+
- Do not assemble a framework project from scratch by habit when official setup commands create the supported structure. Manual assembly is allowed only for tiny prototypes, educational demos, unusual repo constraints, or a documented architecture reason.
|
|
48
50
|
- If containerization is selected, Docker assets must follow [docker-runtime.md](../rules/docker-runtime.md) and the latest official Docker docs instead of stale blog-era patterns. Selected Docker lanes require files and runbooks, not docs-only acknowledgment.
|
|
49
51
|
|
|
50
52
|
## Runtime and Architecture Reference
|
|
@@ -12,6 +12,7 @@ Before adding or recommending a dependency:
|
|
|
12
12
|
- check current official docs, release notes, and setup guidance when the ecosystem decision matters
|
|
13
13
|
- choose the latest stable compatible dependency version unless a project constraint blocks it
|
|
14
14
|
- use the official scaffolder or setup command when it creates the current supported project shape
|
|
15
|
+
- do not hand-assemble fresh framework projects by habit when the official setup flow gives safer current defaults; document the reason when manual assembly is better
|
|
15
16
|
- Only step down to an older dependency version after documenting the exact compatibility, runtime, platform, or ecosystem reason.
|
|
16
17
|
- explain why the dependency is a better tradeoff than local implementation for the current task
|
|
17
18
|
- avoid packages that are stale, thinly maintained, too heavy for the job, or added only because they are popular
|
|
@@ -19,3 +20,5 @@ Before adding or recommending a dependency:
|
|
|
19
20
|
- do not reject a dependency only because it adds a package; reject it only when the project-fit, security, maintenance, compatibility, bundle/runtime, or ownership tradeoff is worse than the alternative
|
|
20
21
|
|
|
21
22
|
Reject offline dependency decisions, outdated tutorial versions, trend choices, dependency avoidance choices, and performance-fear choices that are not grounded in the current repo, brief, and delivery tradeoffs.
|
|
23
|
+
|
|
24
|
+
Reject framework autopilot, not frameworks. Next.js, Vite, Astro, React Router, SvelteKit, Laravel, plain HTML, and other runtimes are candidates, not defaults or forbidden choices. If the user did not constrain the stack, compare at least the strongest fit and one plausible alternative before implementation, then choose the technology that removes bottlenecks for this project.
|
|
@@ -13,7 +13,8 @@ Use this rule for UI, UX, page, screen, component, layout, landing, dashboard, f
|
|
|
13
13
|
- Treat `README.md` as public and developer overview, setup, usage, and user-facing context only when design or architecture rules conflict.
|
|
14
14
|
- Do not choose final style, framework, palette, typography, layout paradigm, or animation library offline.
|
|
15
15
|
- Research current official docs before adding a new UI, animation, scroll, 3D, canvas, charting, icon, styling, or primitive library.
|
|
16
|
-
- Dynamic UI Foundation: do not hardcode shadcn/ui, Tailwind-only, native-only, or any component library as the universal answer.
|
|
16
|
+
- Dynamic UI Foundation: do not hardcode shadcn/ui, Tailwind-only, native-only, or any component library as the universal answer, and do not avoid them out of guardrail fear when they fit. Tailwind-first is valid when the stack, token model, and team workflow support it; pure Tailwind, vanilla CSS, shadcn/ui, or any kit is not neutral by itself. Modern primitives, motion/canvas/WebGL helpers, charting libraries, and styling tools are valid when product evidence, accessibility, runtime constraints, and official docs support them.
|
|
17
|
+
- For fresh projects, prefer official framework scaffolders or setup commands when official docs show they produce the current supported shape. Build files manually only when approved architecture, repo constraints, or learning/prototype scope makes that better.
|
|
17
18
|
- Keep design continuity opt-in. Repo evidence outranks memory residue.
|
|
18
19
|
|
|
19
20
|
## Required Design Contract
|
|
@@ -54,6 +55,7 @@ If the user gives no current-task visual research or reference:
|
|
|
54
55
|
- Do not count old UI, existing design docs, or scaffold seeds as research.
|
|
55
56
|
- Choose one high-variance non-software conceptual anchor before UI code.
|
|
56
57
|
- Internally reject the safest dashboard, portal, card-grid, admin-shell, or minimalist-web-app mental model.
|
|
58
|
+
- Do not let the fallback anchor become a generic place metaphor. Avoid room, darkroom, counting room, control room, war room, studio, lab, cockpit, and command center unless the product actually depends on that place model; prefer product-specific artifacts, workflows, custody chains, instruments, data behaviors, material systems, editorial systems, service rituals, or interaction mechanisms over "where the UI lives".
|
|
57
59
|
- Record one real-world anchor reference, one signature motion behavior, and one typographic decision with role contrast.
|
|
58
60
|
- Derive typography, spacing, morphology, motion, and responsive recomposition from that anchor.
|
|
59
61
|
- Translate the anchor into workflow, hierarchy, density, typography, state behavior, and interaction before using literal artifacts. Do not turn anchor artifacts into required chrome, wallpaper, decorative props, or component-kit theme objects without a named product function.
|
|
@@ -71,7 +73,7 @@ If the user gives no current-task visual research or reference:
|
|
|
71
73
|
- For new screens or broad redesigns, research the expressive implementation path instead of defaulting to static native CSS. Use native or already-installed tools only when they can still deliver the chosen ambition, or when a concrete blocker is documented. Do not downshift because adding a package feels inconvenient; downshift only for a concrete product-fit, accessibility, security, compatibility, device, maintenance, or measured performance reason.
|
|
72
74
|
- Keep reduced-motion, keyboard, loading, performance, mobile, and non-3D fallbacks explicit.
|
|
73
75
|
- Use component kits or headless primitives for behavior and accessibility when they fit. Replace library-default visual language with project-specific composition, tokens, motion, state treatment, and morphology.
|
|
74
|
-
- Keep design-intent flexible: lock user goals, accessibility, production readiness, forbidden patterns, and approved continuity; keep exact palette primitives, font families, radius/shadow values, component skins,
|
|
76
|
+
- Keep design-intent flexible: lock user goals, accessibility, production readiness, forbidden patterns, and approved continuity; keep exact palette primitives, font families, radius/shadow values, component skins, candidate signature moves, and external website inspiration flexible until evidence or approval locks them. Convert references into product-fit rules; do not copy layout, palette, component skin, brand posture, or visual metaphor.
|
|
75
77
|
## Zero-Based Redesign
|
|
76
78
|
|
|
77
79
|
If the user asks for a redesign from zero:
|
|
@@ -7,7 +7,7 @@ alwaysApply: true
|
|
|
7
7
|
|
|
8
8
|
Adapter Mode: thin
|
|
9
9
|
Adapter Source: .instructions.md
|
|
10
|
-
Canonical Snapshot SHA256:
|
|
10
|
+
Canonical Snapshot SHA256: c66b5dfe48a25f0df297a1681aa6bab572da95d2201f09abf3767d38a2934591
|
|
11
11
|
|
|
12
12
|
This repository is governed by a strict instruction contract.
|
|
13
13
|
Use [.instructions.md](../../.instructions.md) as the canonical policy source.
|
package/.cursorrules
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# .cursorrules - Legacy Thin Adapter
|
|
2
2
|
|
|
3
|
-
Generated by Agentic-Senior-Core CLI v3.0.
|
|
3
|
+
Generated by Agentic-Senior-Core CLI v3.0.46
|
|
4
4
|
Adapter Mode: legacy-thin
|
|
5
5
|
Adapter Source: .agent-instructions.md when present; fallback .instructions.md
|
|
6
6
|
Canonical baseline: .instructions.md
|
package/.gemini/instructions.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: c66b5dfe48a25f0df297a1681aa6bab572da95d2201f09abf3767d38a2934591
|
|
6
6
|
|
|
7
7
|
This repository is governed by a strict instruction contract.
|
|
8
8
|
Use [.instructions.md](../.instructions.md) as the canonical policy source.
|
|
@@ -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: c66b5dfe48a25f0df297a1681aa6bab572da95d2201f09abf3767d38a2934591
|
|
6
6
|
|
|
7
7
|
This repository is governed by a strict instruction contract.
|
|
8
8
|
Use [.instructions.md](../.instructions.md) as the canonical policy source.
|
|
@@ -6,7 +6,7 @@ applyTo: "**"
|
|
|
6
6
|
|
|
7
7
|
Adapter Mode: thin
|
|
8
8
|
Adapter Source: .instructions.md
|
|
9
|
-
Canonical Snapshot SHA256:
|
|
9
|
+
Canonical Snapshot SHA256: c66b5dfe48a25f0df297a1681aa6bab572da95d2201f09abf3767d38a2934591
|
|
10
10
|
|
|
11
11
|
This repository is governed by a strict instruction contract.
|
|
12
12
|
Use [.instructions.md](../../.instructions.md) as the canonical policy source.
|
package/.instructions.md
CHANGED
|
@@ -44,7 +44,7 @@ Load only relevant rule files. Do not read the entire rule directory by default.
|
|
|
44
44
|
|
|
45
45
|
Available rules: `naming-conv.md`, `architecture.md`, `security.md`, `performance.md`, `error-handling.md`, `testing.md`, `git-workflow.md`, `efficiency-vs-hype.md`, `api-docs.md`, `microservices.md`, `event-driven.md`, `database-design.md`, `realtime.md`, `frontend-architecture.md`, `docker-runtime.md`.
|
|
46
46
|
|
|
47
|
-
For Docker or Compose work, load `docker-runtime.md` and verify the latest official Docker docs before authoring container assets. For framework or package setup work, use the latest stable compatible dependency set and official setup flow unless a documented compatibility constraint blocks it. New dependencies are allowed when they improve efficiency, delivery time, correctness, accessibility, UX, or maintainability. Do not treat dependency avoidance or vague performance fear as a default reason to skip a modern maintained library.
|
|
47
|
+
For Docker or Compose work, load `docker-runtime.md` and verify the latest official Docker docs before authoring container assets. For framework or package setup work, use the latest stable compatible dependency set and official setup flow unless a documented compatibility constraint blocks it. Prefer official framework scaffolders when they create the supported project shape; manual file assembly needs a repo, prototype, learning, or architecture reason. New dependencies are allowed when they improve efficiency, delivery time, correctness, accessibility, UX, or maintainability. Do not treat dependency avoidance or vague performance fear as a default reason to skip a modern maintained library.
|
|
48
48
|
|
|
49
49
|
Backend/API routing:
|
|
50
50
|
- Data/schema/persistence: `architecture.md`, `database-design.md`, `performance.md`, `testing.md`.
|
|
@@ -59,13 +59,13 @@ Use the union once when scopes overlap. Do not create framework-specific governa
|
|
|
59
59
|
|
|
60
60
|
Runtime Decision Signals come from project context, repo evidence, and live research. Runtime signals are evidence gates, not style cues or popularity rankings.
|
|
61
61
|
|
|
62
|
-
For fresh projects, recommend runtime/framework from the brief, constraints, and live official docs before coding. For existing projects, treat detected markers as evidence only. Ignore pattern frequency, external rankings, and remembered defaults.
|
|
62
|
+
For fresh projects, recommend runtime/framework from the brief, constraints, and live official docs before coding. For existing projects, treat detected markers as evidence only. Ignore pattern frequency, external rankings, and remembered defaults. Do not default web projects to Next.js, Tailwind-only styling, shadcn/ui, Vite, or any familiar web stack by habit, and do not avoid them because of this guard when they are the strongest project fit.
|
|
63
63
|
|
|
64
64
|
### Layer 3: Structural Planning Signals
|
|
65
65
|
|
|
66
66
|
Structural Planning Signals use dynamic structural planning from repo context, docs, runtime constraints, and live research. Structural planning signals are not a hard whitelist.
|
|
67
67
|
|
|
68
|
-
For new projects or modules, extract constraints, boundaries, and required docs first. Do not silently choose frameworks or architecture from offline heuristics. If runtime or architecture is unresolved, produce a short recommendation from evidence and live official documentation before coding.
|
|
68
|
+
For new projects or modules, extract constraints, boundaries, and required docs first. Do not silently choose frameworks or architecture from offline heuristics. If runtime or architecture is unresolved, produce a short recommendation from evidence and live official documentation before coding. Compare at least one plausible alternative when the strongest-looking option is a familiar web default and the user did not explicitly choose it.
|
|
69
69
|
|
|
70
70
|
### Layer 4: Execution Contracts
|
|
71
71
|
|
|
@@ -148,6 +148,8 @@ Trigger: ui, ux, layout, screen, tailwind, frontend, redesign.
|
|
|
148
148
|
6. Generate or refine `docs/DESIGN.md` plus `docs/design-intent.json` before UI implementation.
|
|
149
149
|
7. Keep context isolated; do not eagerly load unrelated backend-only rules.
|
|
150
150
|
8. In UI Design Mode, choose the ambition level proactively. For broad screens or redesigns, treat expressive motion, spatial hierarchy, distinctive composition, and product-specific interaction as the baseline even when the user did not say "rich"; quiet or static surfaces require a concrete product, performance, accessibility, device, or dependency reason.
|
|
151
|
+
9. Do not let conceptual anchors collapse into room, darkroom, counting room, control room, war room, studio, lab, cockpit, or command center by habit. Prefer artifacts, workflows, custody chains, instruments, data behaviors, material systems, editorial systems, service rituals, or interaction mechanisms unless a physical place model is core to the product.
|
|
152
|
+
10. External websites and benchmark examples are candidate evidence for constraints, mechanics, and quality bars only. Do not copy their layout rhythm, palette, component skin, visual metaphor, or brand posture without explicit user approval and product-fit rationale.
|
|
151
153
|
|
|
152
154
|
## Reasoning Chain
|
|
153
155
|
|
|
@@ -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: c66b5dfe48a25f0df297a1681aa6bab572da95d2201f09abf3767d38a2934591
|
|
6
6
|
|
|
7
7
|
This repository is governed by a strict instruction contract.
|
|
8
8
|
Use [.instructions.md](../../.instructions.md) as the canonical policy source.
|
package/.windsurfrules
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# .windsurfrules - Legacy Thin Adapter
|
|
2
2
|
|
|
3
|
-
Generated by Agentic-Senior-Core CLI v3.0.
|
|
3
|
+
Generated by Agentic-Senior-Core CLI v3.0.46
|
|
4
4
|
Adapter Mode: legacy-thin
|
|
5
5
|
Adapter Source: .agent-instructions.md when present; fallback .instructions.md
|
|
6
6
|
Canonical baseline: .instructions.md
|
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: c66b5dfe48a25f0df297a1681aa6bab572da95d2201f09abf3767d38a2934591
|
|
6
6
|
|
|
7
7
|
This repository is governed by a strict instruction contract.
|
|
8
8
|
Use [.instructions.md](.instructions.md) as the canonical policy source.
|
package/CLAUDE.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: c66b5dfe48a25f0df297a1681aa6bab572da95d2201f09abf3767d38a2934591
|
|
6
6
|
|
|
7
7
|
This repository is governed by a strict instruction contract.
|
|
8
8
|
Use [.instructions.md](.instructions.md) as the canonical policy source.
|
package/GEMINI.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: c66b5dfe48a25f0df297a1681aa6bab572da95d2201f09abf3767d38a2934591
|
|
6
6
|
|
|
7
7
|
This repository is governed by a strict instruction contract.
|
|
8
8
|
Use [.instructions.md](.instructions.md) as the canonical policy source.
|
|
@@ -236,7 +236,8 @@ export function validateDesignIntentContract(designIntentContract) {
|
|
|
236
236
|
!Array.isArray(conceptualAnchor.sourceDomains)
|
|
237
237
|
|| conceptualAnchor.sourceDomains.length < 4
|
|
238
238
|
|| !conceptualAnchor.sourceDomains.includes('complex-physical-engineering')
|
|
239
|
-
|| !conceptualAnchor.sourceDomains.includes('cinematic-
|
|
239
|
+
|| !conceptualAnchor.sourceDomains.includes('cinematic-behavior-and-transition-systems')
|
|
240
|
+
|| !conceptualAnchor.sourceDomains.includes('workflow-and-custody-systems')
|
|
240
241
|
|| !conceptualAnchor.sourceDomains.includes('premium-interactive-web-experiences')
|
|
241
242
|
) {
|
|
242
243
|
validationErrors.push('designIntent.conceptualAnchor.sourceDomains must list broad non-template anchor domains.');
|
|
@@ -29,6 +29,12 @@ const GENERICITY_DRIFT_SIGNALS = [
|
|
|
29
29
|
'literal-anchor-artifacts-used-as-required-ui-chrome',
|
|
30
30
|
'candidate-signature-move-treated-as-locked-implementation',
|
|
31
31
|
'library-theme-tokens-drive-visual-language',
|
|
32
|
+
'spatial-room-anchor-used-by-habit',
|
|
33
|
+
'place-metaphor-used-as-layout-model-without-product-function',
|
|
34
|
+
'external-website-reference-copied-as-style',
|
|
35
|
+
'tailwind-only-or-component-kit-used-as-neutrality-claim',
|
|
36
|
+
'framework-selected-by-familiarity-instead-of-evidence',
|
|
37
|
+
'manual-framework-scaffold-used-when-official-setup-fits',
|
|
32
38
|
];
|
|
33
39
|
|
|
34
40
|
const FORBIDDEN_PATTERN_SIGNALS = [
|
|
@@ -50,6 +56,9 @@ const VALID_BOLD_SIGNALS = [
|
|
|
50
56
|
'headless-or-component-primitive-restyled-to-product-language',
|
|
51
57
|
'responsive-recomposition-by-task-priority',
|
|
52
58
|
'purposeful-motion-with-reduced-motion-path',
|
|
59
|
+
'non-spatial-product-anchor-or-workflow-mechanism',
|
|
60
|
+
'official-scaffolder-used-for-supported-project-shape',
|
|
61
|
+
'framework-choice-compared-against-plausible-alternative',
|
|
53
62
|
];
|
|
54
63
|
|
|
55
64
|
export function shouldBootstrapDesignDocument(discoveryAnswers, initContext) {
|
|
@@ -202,11 +211,14 @@ function buildDesignIntentContractObject({
|
|
|
202
211
|
'component-kit-theme-mapping',
|
|
203
212
|
'signature-move-implementation',
|
|
204
213
|
'literal-anchor-artifacts',
|
|
214
|
+
'spatial-metaphor-and-place-language',
|
|
205
215
|
],
|
|
206
216
|
tokenLockingRule: 'Semantic roles are required, but exact primitive values stay flexible until repo evidence, accessibility validation, implementation constraints, or explicit user approval locks them.',
|
|
207
217
|
signatureMovePolicy: 'Record the required experience outcome separately from candidate implementation moves; replace a candidate move when another move better fits the product.',
|
|
208
218
|
libraryVisualLanguagePolicy: 'Libraries supply behavior, accessibility, primitives, and delivery speed; they must not dictate final composition, theme, morphology, or visual language.',
|
|
209
219
|
literalAnchorPolicy: 'Translate anchors into workflow, hierarchy, density, typography, material behavior, state language, and interaction grammar before requiring literal props, marks, or chrome.',
|
|
220
|
+
spatialMetaphorPolicy: 'Do not default anchors to room, darkroom, counting room, control room, war room, studio, lab, cockpit, or command center. Use place metaphors only when the product truly depends on a physical place model.',
|
|
221
|
+
externalInspirationPolicy: 'External websites and examples are candidate evidence for constraints, mechanics, and quality bars; do not copy their layout rhythm, palette, component skin, brand posture, or visual metaphor.',
|
|
210
222
|
},
|
|
211
223
|
conceptualAnchor: {
|
|
212
224
|
mode: 'required-when-no-external-research',
|
|
@@ -227,6 +239,8 @@ function buildDesignIntentContractObject({
|
|
|
227
239
|
preferDistinctiveOverSafe: true,
|
|
228
240
|
doNotRevealHiddenCandidateList: true,
|
|
229
241
|
outputOnlyChosenAnchor: true,
|
|
242
|
+
avoidSpatialPlaceMetaphorByDefault: true,
|
|
243
|
+
preferMechanismOverPlace: true,
|
|
230
244
|
},
|
|
231
245
|
creativeCommitmentPolicy: {
|
|
232
246
|
requiredBeforeComplianceReview: true,
|
|
@@ -246,12 +260,23 @@ function buildDesignIntentContractObject({
|
|
|
246
260
|
'saas-shell',
|
|
247
261
|
'minimalist-interface',
|
|
248
262
|
'safe-admin-layout',
|
|
263
|
+
'room',
|
|
264
|
+
'darkroom',
|
|
265
|
+
'counting-room',
|
|
266
|
+
'control-room',
|
|
267
|
+
'war-room',
|
|
268
|
+
'studio',
|
|
269
|
+
'lab',
|
|
270
|
+
'cockpit',
|
|
271
|
+
'command-center',
|
|
249
272
|
],
|
|
250
273
|
sourceDomains: [
|
|
251
274
|
'complex-physical-engineering',
|
|
252
|
-
'cinematic-
|
|
275
|
+
'cinematic-behavior-and-transition-systems',
|
|
253
276
|
'experimental-editorial-structure',
|
|
254
277
|
'scientific-instrumentation',
|
|
278
|
+
'workflow-and-custody-systems',
|
|
279
|
+
'material-artifacts-and-instruments',
|
|
255
280
|
'premium-interactive-web-experiences',
|
|
256
281
|
],
|
|
257
282
|
visualRiskBudget: {
|
|
@@ -266,6 +291,12 @@ function buildDesignIntentContractObject({
|
|
|
266
291
|
allowedLiteralUse: 'Only use literal anchor artifacts when they serve a named product function, control, state, or task overlay.',
|
|
267
292
|
forbiddenLiteralUse: 'Do not turn anchor artifacts into decorative wallpaper, required chrome, default texture, or unavoidable theme props.',
|
|
268
293
|
},
|
|
294
|
+
spatialAutopilotPolicy: {
|
|
295
|
+
forbiddenHabitTerms: ['room', 'darkroom', 'counting-room', 'control-room', 'war-room', 'studio', 'lab', 'cockpit', 'command-center'],
|
|
296
|
+
allowedOnlyWhen: 'The product has a real physical place model, operational environment, or user workflow that depends on that place metaphor.',
|
|
297
|
+
replacementPreference: 'Use artifacts, custody flows, instruments, data behaviors, material systems, editorial systems, service rituals, or interaction mechanisms.',
|
|
298
|
+
reviewQuestion: 'Could this anchor still work if the word "room" was removed? If not, revise before UI code.',
|
|
299
|
+
},
|
|
269
300
|
requiredDerivedAxes: [
|
|
270
301
|
'typography',
|
|
271
302
|
'morphology',
|
|
@@ -370,7 +401,9 @@ function buildDesignIntentContractObject({
|
|
|
370
401
|
sourceUrl: null,
|
|
371
402
|
stableVersion: null,
|
|
372
403
|
fallbackIfUnavailable: 'Use native CSS, browser APIs, or existing dependencies.',
|
|
373
|
-
selectionPolicy: 'Do not default to shadcn, native-only, Tailwind-only, or dependency avoidance by habit.',
|
|
404
|
+
selectionPolicy: 'Do not default to shadcn, native-only, Tailwind-only, or dependency avoidance by habit; do not avoid them out of guardrail fear when they fit.',
|
|
405
|
+
officialScaffolderPolicy: 'For fresh projects, prefer official setup commands when they create the supported project shape; manual assembly requires a documented repo, learning, prototype, or architecture reason.',
|
|
406
|
+
frameworkNeutralityPolicy: 'Next.js, Vite, Astro, React Router, SvelteKit, Laravel, and plain HTML are candidates, not defaults or forbidden choices. Compare at least one plausible alternative when no framework is user-constrained, then choose the technology that removes bottlenecks for this project.',
|
|
374
407
|
},
|
|
375
408
|
],
|
|
376
409
|
mathSystems: {
|
|
@@ -687,9 +720,12 @@ function buildDesignIntentContractObject({
|
|
|
687
720
|
requireExplicitContinuityApproval: true,
|
|
688
721
|
forbidCarryoverWhenUnapproved: true,
|
|
689
722
|
approvedExternalConstraintUsage: 'Convert approved external constraints into current-project rules; do not imitate source surfaces.',
|
|
723
|
+
externalWebsiteReferencePolicy: 'Use outside websites for mechanics, constraints, and quality bar analysis only. Do not copy layout rhythm, palette, component skin, visual metaphor, or brand posture.',
|
|
690
724
|
driftSignals: [
|
|
691
725
|
'palette-reused-without-brief-support',
|
|
692
726
|
'prior-ui-visual-dna-carried-into-reset-request',
|
|
727
|
+
'room-or-control-room-anchor-repeated-without-product-need',
|
|
728
|
+
'external-reference-copied-instead-of-translated',
|
|
693
729
|
],
|
|
694
730
|
},
|
|
695
731
|
forbiddenPatterns: [...FORBIDDEN_PATTERN_SIGNALS],
|
|
@@ -214,13 +214,17 @@ export function buildDesignBootstrapPrompt({
|
|
|
214
214
|
'25. In Dynamic Avant-Garde mode, consider three high-variance anchors, discard the two safest or most predictable options, and output only the chosen anchor.',
|
|
215
215
|
'26. Reject final anchors named dashboard, portal, cards, admin panel, SaaS shell, web app shell, or minimalist interface.',
|
|
216
216
|
'27. Reject anchors described only as modern, clean, premium, expressive, minimal, or bold.',
|
|
217
|
+
'27a. Do not default anchors to room, darkroom, counting room, control room, war room, studio, lab, cockpit, or command center unless the product genuinely depends on that physical place model.',
|
|
218
|
+
'27b. Prefer artifacts, custody flows, instruments, data behaviors, material systems, editorial systems, service rituals, or interaction mechanisms over "where the interface lives".',
|
|
217
219
|
'28. Set conceptualAnchor.anchorReference and make derivedTokenLogic.anchorReference match exactly.',
|
|
218
220
|
'29. Fill derivedTokenLogic before code. If a token cannot trace to anchorReference, revise it.',
|
|
219
221
|
'29a. Lock semantic roles before exact values. Do not freeze fonts, color primitives, radius, shadows, or component-kit theme treatment unless repo evidence, accessibility validation, implementation constraints, or explicit user approval requires it.',
|
|
220
222
|
'30. Research current official docs before importing any new UI-related library.',
|
|
221
|
-
'31. Do not default to shadcn/ui, Tailwind-only, native-only, or any component kit by habit; choose the UI foundation from product fit, accessibility, interaction quality, runtime constraints, and official docs.',
|
|
223
|
+
'31. Do not default to shadcn/ui, Tailwind-only, native-only, or any component kit by habit, and do not avoid them out of guardrail fear; choose the UI foundation from product fit, accessibility, interaction quality, runtime constraints, and official docs.',
|
|
222
224
|
'32. If research is unavailable, set libraryResearchStatus to pending-verification and use native CSS, browser APIs, or existing dependencies only when they can preserve the intended ambition.',
|
|
223
225
|
'33. Do not reject modern lightweight libraries solely because they add a dependency; package count or vague performance fear is not a blocker by itself.',
|
|
226
|
+
'33a. Tailwind-first is valid only when the stack, token model, and team workflow support it; pure Tailwind, vanilla CSS, shadcn/ui, or any component kit is not neutral by default and not forbidden by default.',
|
|
227
|
+
'33b. For fresh framework projects, prefer official setup commands when official docs show they create the supported project shape; manual file assembly requires a repo, prototype, learning, or architecture reason.',
|
|
224
228
|
'34. Define reviewRubric and require genericity findings to name the actual drift signal.',
|
|
225
229
|
'35. Separate taste from failure. Bold accessible work is valid.',
|
|
226
230
|
'36. For zero-based redesign, create visualResetStrategy and reset composition, hierarchy, palette/typography, motion or interaction, and responsive information architecture.',
|
|
@@ -228,6 +232,7 @@ export function buildDesignBootstrapPrompt({
|
|
|
228
232
|
'38. Do not make core user workflows terminal-only unless the product is explicitly a CLI, developer tool, or operational runbook.',
|
|
229
233
|
'39. Separate required experience outcomes from candidate implementation moves. Candidate signature moves are proposals until product evidence, accessibility, or user approval makes them required.',
|
|
230
234
|
'40. Translate conceptual anchors non-literally first. Do not turn anchor artifacts into required chrome, decorative props, wallpaper, or theme objects unless they serve a named product function.',
|
|
235
|
+
'41. Use external websites and benchmark examples as candidate evidence for constraints, mechanics, and quality bars only; do not copy layout rhythm, palette, component skin, visual metaphor, or brand posture.',
|
|
231
236
|
'',
|
|
232
237
|
'## Creative Ambition Floor',
|
|
233
238
|
'Before implementation, the design contract must name one authored visual bet, one product-derived palette move, one signature motion/spatial/interaction behavior, and one morphology or composition choice that would not appear in a generic AI template.',
|
|
@@ -244,6 +249,7 @@ export function buildDesignBootstrapPrompt({
|
|
|
244
249
|
'If web search is available, verify every new UI, animation, scroll, 3D, canvas, chart, icon, styling, or primitive library against current official docs and record source URL, fetched date, stable compatible version, purpose, risk, and fallback.',
|
|
245
250
|
'If web search is unavailable or fails, set libraryResearchStatus to pending-verification, record LIBRARY_TO_VERIFY notes, and use native CSS, browser APIs, or already-present project dependencies only when they can preserve the intended ambition until verification is possible.',
|
|
246
251
|
'Select UI foundations dynamically. Use ready-made primitives or component kits for mechanics when they fit, but replace library-default visual language with project-specific composition, tokens, motion, state treatment, and morphology.',
|
|
252
|
+
'For fresh projects, compare the user-constrained or strongest-fit framework against at least one plausible alternative when no framework is explicitly selected. Do not let Next.js or any familiar web stack win by pattern frequency.',
|
|
247
253
|
'',
|
|
248
254
|
'## Project Inputs',
|
|
249
255
|
`- Project name: ${discoveryAnswers.projectName}`,
|