@ryuenn3123/agentic-senior-core 6.16.2 → 6.16.5

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.
Files changed (47) hide show
  1. package/.agents/plugins/agentic-senior-core/.codex-plugin/plugin.json +1 -1
  2. package/.agents/plugins/agentic-senior-core/commands/asc-pentest.md +2 -0
  3. package/.agents/plugins/agentic-senior-core/commands/asc-pentest.toml +3 -0
  4. package/.agents/plugins/agentic-senior-core/hooks/dedup-gate.js +137 -128
  5. package/.agents/plugins/agentic-senior-core/hooks/hooks.json +97 -0
  6. package/.agents/plugins/agentic-senior-core/hooks/ladder-pulse.js +53 -36
  7. package/.agents/plugins/agentic-senior-core/hooks/lib/known-ui-slop-patterns.json +20 -0
  8. package/.agents/plugins/agentic-senior-core/hooks/path-util.cjs +118 -4
  9. package/.agents/plugins/agentic-senior-core/hooks/post-edit-enforce.js +98 -81
  10. package/.agents/plugins/agentic-senior-core/hooks/pre-tool-dependency-gate.js +168 -191
  11. package/.agents/plugins/agentic-senior-core/hooks/session-pulse.js +48 -35
  12. package/.agents/plugins/agentic-senior-core/hooks/session-start.js +62 -11
  13. package/.agents/plugins/agentic-senior-core/hooks.json +4 -94
  14. package/.agents/plugins/agentic-senior-core/plugin.json +5 -13
  15. package/.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md +6 -1
  16. package/.agents/plugins/agentic-senior-core/skills/asc/SKILL.md +5 -2
  17. package/.agents/plugins/agentic-senior-core/skills/asc-develop/SKILL.md +3 -3
  18. package/.agents/plugins/agentic-senior-core/skills/asc-pentest/SKILL.md +97 -0
  19. package/.agents/plugins/agentic-senior-core/skills/asc-pentest/references/api-security-idor.md +105 -0
  20. package/.agents/plugins/agentic-senior-core/skills/asc-pentest/references/dast-baseline.md +78 -0
  21. package/.agents/plugins/agentic-senior-core/skills/asc-pentest/references/fuzzing-dsl.md +66 -0
  22. package/.agents/plugins/agentic-senior-core/skills/asc-pentest/references/pentest-task-tree.md +70 -0
  23. package/.agents/plugins/agentic-senior-core/skills/asc-review/SKILL.md +2 -2
  24. package/.agents/plugins/agentic-senior-core/skills/asc-test/SKILL.md +8 -1
  25. package/.agents/plugins/agentic-senior-core/skills/asc-test/references/mutation-testing.md +55 -0
  26. package/.agents/plugins/agentic-senior-core/skills/asc-test/references/performance-budgets.md +67 -0
  27. package/.agents/plugins/agentic-senior-core/skills/asc-test/references/property-testing.md +72 -0
  28. package/.agents/plugins/agentic-senior-core/skills/asc-ui/SKILL.md +17 -14
  29. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/copy-i18n.md +56 -8
  30. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/craft/color-surfaces.md +25 -0
  31. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/craft/themes-catalog.md +198 -0
  32. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/divergence.md +34 -2
  33. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/modes/genre-calibration.md +89 -0
  34. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/modes/operate.md +26 -0
  35. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/modes/persuade.md +10 -9
  36. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/redesign-audit.md +4 -9
  37. package/bin/agentic-senior-core.js +19 -4
  38. package/gemini-extension.json +2 -2
  39. package/lib/cli/ascx/runtime.mjs +5 -27
  40. package/lib/cli/ascx/windows-spawn.mjs +348 -0
  41. package/lib/cli/commands/bootstrap.mjs +56 -0
  42. package/lib/cli/commands/dedup.mjs +500 -0
  43. package/lib/cli/commands/git-hook-generator.mjs +3 -2
  44. package/lib/cli/commands/global.mjs +109 -53
  45. package/lib/cli/commands/preview.mjs +18 -9
  46. package/package.json +1 -1
  47. package/plugin.yaml +3 -1
@@ -0,0 +1,198 @@
1
+ # Curated Design Themes Catalog (16 Production Material Systems)
2
+
3
+ > **Core Invariant:** Never allow an LLM to invent an ad-hoc color palette or arbitrary font pairing from scratch. Unconstrained models converge onto the statistical median: muddy slate-indigo, generic SaaS card soup, or gimmick cosplay. Lock visual styling to one of **16 verified, domain-calibrated material themes** across **8 real-world software domains** (2 contrasting directions per domain).
4
+
5
+ ---
6
+
7
+ ## 1. Domain Matrix (8 Domains × 2 Contrasting Directions)
8
+
9
+ Select the domain matching the product's real-world purpose, then pick one of its two contrasting material directions so consecutive projects never converge onto a single look:
10
+
11
+ | Domain | Option A (Cool / Crisp / Structural) | Option B (Warm / Tactile / Editorial) |
12
+ |---|---|---|
13
+ | **1. Civic, Academic & Institutional** | `01. Sovereign Slate` | `02. Almanac Index` |
14
+ | **2. Financial, ERP & Operations** | `03. Editorial Ledger` | `04. Warm Stationery` |
15
+ | **3. Healthcare, Clinical & Care** | `05. Pharmacy Calm` | `06. Clinical Precision` |
16
+ | **4. Commercial B2B SaaS & Platforms** | `07. Ink & Signal` | `08. Obsidian Stage` |
17
+ | **5. Developer Tools, Observability & Security** | `09. Graphite Instrument` | `10. Technical Whiteprint` |
18
+ | **6. Commerce, Hospitality, Craft & Hardware** | `11. Atelier Gallery` | `12. Kinetic Grid` |
19
+ | **7. Editorial, Publishing, EdTech & Knowledge** | `13. Studio Proof` | `14. Botanical Field` |
20
+ | **8. Industrial, Logistics, Construction & Geo** | `15. Formwork Concrete` | `16. Meridian Survey` |
21
+
22
+ ---
23
+
24
+ ## 2. Anti-Gimmick Exclusion Filter (Why Cosplay Themes Are Banned)
25
+
26
+ External theme packs frequently confuse novelty with craft—producing a **second wave of AI slop** that breaks usability and production budgets. The following patterns are strictly excluded from ASC:
27
+ 1. **Cosplay & Novelty Surfaces:** Medieval blackletter parchment, green/amber CRT phosphor scanlines, two-drum pink/blue risograph with no black ink, torn-paper edges, and die-cut sticker outlines.
28
+ 2. **Decorative Runtime Shaders:** Mandatory `<canvas>` or WebGL background noise fields, drifting particle hazes, and SVG `feTurbulence` grain overlays sitting over running body text.
29
+ 3. **Broken Font & Asset Dependencies:** Fontshare-only families (`Sentient`, `General Sans`, `Switzer`, `Cabinet Grotesk`, `Boska`, `Chillax`, `Ranade`) that 404 on Google Fonts CDNs, and unbundled local texture URLs (`url("cotton.svg")`). Every font in this catalog is verified on Google Fonts with clean system fallbacks.
30
+ 4. **Low-Contrast Mid-Tone Grounds:** Raw `70%` grey or `35%` saturated blue full-app drenches that fail WCAG 2.2 AA `4.5:1` contrast on secondary metadata.
31
+
32
+ ---
33
+
34
+ ## 3. Domain 1 — Civic, Academic & Institutional
35
+
36
+ ### `01. Sovereign Slate`
37
+ *Best for: School evaluations (SAURAN), accreditation dossiers, compliance portals, municipal registries.*
38
+ - **Surface Tokens:** Canvas `#f8fafc` (`oklch(98.4% 0.003 248)`) · Sheet `#ffffff` · Rail `#f1f5f9` · Rule `1px solid #e2e8f0`
39
+ - **Ink Tokens:** Primary `#0f172a` · Secondary `#334155` · Muted `#64748b`
40
+ - **Accent & Semantic:** Deep Pine `#0f766e` (`oklch(51% 0.096 186)`), Soft `#f0fdfa` · Status: Emerald `#047857`, Amber `#b45309`, Rose `#be123c`
41
+ - **Typography:** Display & UI `Plus Jakarta Sans` (600/700 heads, 400/500 body) · Numeric `JetBrains Mono` (`tabular-nums`)
42
+ - **Geometry & Posture:** Unified Spatial Canvas (`0px` sheet divisions, `6px` control radius). Left verification rail + right primary data table. Zero floating card islands.
43
+
44
+ ### `02. Almanac Index`
45
+ *Best for: University catalogs, public archives, policy repositories, judicial & regulatory filings.*
46
+ - **Surface Tokens:** Canvas `#f7f4ed` (`oklch(96.6% 0.012 85)`) · Sheet `#fcfbf8` · Subtle `#efeae0` · Rule `1px solid #ded8cb` (Section head rule: `2px solid #1f1d1a`)
47
+ - **Ink Tokens:** Primary `#1f1d1a` · Secondary `#3d3934` · Muted `#666057`
48
+ - **Accent & Semantic:** Terracotta Seal `#b4532a` (`oklch(53% 0.14 38)`), Soft `#fdf2ed`
49
+ - **Typography:** Display `Newsreader` (500/600, `-0.02em`) · Body & UI `Source Sans 3` (400/600) · Index/Filing IDs `IBM Plex Mono`
50
+ - **Geometry & Posture:** Archival index sheet (`4px` control radius, zero drop shadows at rest). Heavy `2px` ink top-bars anchor tables and statutory sections; hairline rules separate rows.
51
+
52
+ ---
53
+
54
+ ## 4. Domain 2 — Financial, ERP & Operations
55
+
56
+ ### `03. Editorial Ledger`
57
+ *Best for: Accounting systems, treasury consoles, ERP inventory, institutional billing, audit ledgers.*
58
+ - **Surface Tokens:** Canvas `#ffffff` · Sub-surface / Striping `#f9fafb` (`oklch(98.5% 0.002 247)`) · Rule `1px solid #e5e7eb`
59
+ - **Ink Tokens:** Primary `#111827` · Secondary `#374151` · Muted `#6b7280`
60
+ - **Accent & Semantic:** Sovereign Navy `#1e3a8a` (`oklch(38% 0.14 262)`), Soft `#eff6ff` · Variance: Positive `#047857`, Negative `#b91c1c`
61
+ - **Typography:** Display & UI `Inter` (600 heads, 400/500 body) · Figures `IBM Plex Mono` (`tabular-nums`, right-aligned quantitative columns)
62
+ - **Geometry & Posture:** Edge-to-edge sticky-header tables (`10px–12px` vertical cell padding, `6px` control radius) with 65/35 master-detail inspector Drawer/Rail.
63
+
64
+ ### `04. Warm Stationery`
65
+ *Best for: Private banking, advisory portfolios, payroll & compensation portals, procurement workflows.*
66
+ - **Surface Tokens:** Canvas `#faf7f2` (`oklch(97.5% 0.009 80)`) · Sheet `#ffffff` · Subtle `#f2ede4` · Rule `1px solid #e4ddd1`
67
+ - **Ink Tokens:** Primary `#231f1c` · Secondary `#443e38` · Muted `#6e655d`
68
+ - **Accent & Semantic:** Deep Forest `#166534` (`oklch(44% 0.11 152)`), Soft `#f0fdf4`
69
+ - **Typography:** Display & Totals `Instrument Serif` (400, `-0.015em`) · UI & Tables `DM Sans` (400/500/600) · Figures `DM Mono` (`tabular-nums`)
70
+ - **Geometry & Posture:** Calm ledger sheet (`8px` radius on inputs/wells, `1px` warm hairline borders, zero shadow on resting panels).
71
+
72
+ ---
73
+
74
+ ## 5. Domain 3 — Healthcare, Clinical & Care
75
+
76
+ ### `05. Pharmacy Calm`
77
+ *Best for: Patient portals, telehealth scheduling, pharmacy fulfillment, mental health & wellness care.*
78
+ - **Surface Tokens:** Canvas `#f6f7f4` (`oklch(97.2% 0.008 135)`) · Sheet `#ffffff` · Subtle `#ebeee7` · Rule `1px solid #dce1d6`
79
+ - **Ink Tokens:** Primary `#18221e` · Secondary `#33423c` · Muted `#596b63`
80
+ - **Accent & Semantic:** Apothecary Eucalyptus `#0d6e5b` (`oklch(48% 0.095 172)`), Soft `#ecfdf5`
81
+ - **Typography:** Display `Outfit` (600, `-0.02em`) · Clinical Body `Public Sans` (400/500, `1.55` line-height) · Dosages & Times `JetBrains Mono`
82
+ - **Geometry & Posture:** Generous breathing room (`10px` control/surface radius, `1px` crisp borders, clear progressive step flows, high-legibility medication and appointment timelines).
83
+
84
+ ### `06. Clinical Precision`
85
+ *Best for: Electronic Health Records (EHR), lab diagnostics, radiology worklists, ICU/ward triage.*
86
+ - **Surface Tokens:** Canvas `#f8fafc` · Worklist `#ffffff` · Header/Rail `#f1f5f9` · Rule `1px solid #cbd5e1`
87
+ - **Ink Tokens:** Primary `#0b1324` · Secondary `#283548` · Muted `#526277`
88
+ - **Accent & Semantic:** Diagnostic Cerulean `#0369a1` (`oklch(50% 0.12 238)`), Soft `#f0f9ff` · Out-of-range flag: `#b91c1c` (always paired with explicit `H`/`L` symbol, never color alone)
89
+ - **Typography:** UI `IBM Plex Sans` (400/500/600) · Vitals, Reference Ranges & Timestamps `IBM Plex Mono` (`tabular-nums`)
90
+ - **Geometry & Posture:** High-density patient banner pinned top, `4px` tight radius, zero decorative imagery, instant keyboard/row triage.
91
+
92
+ ---
93
+
94
+ ## 6. Domain 4 — Commercial B2B SaaS & Platforms
95
+
96
+ ### `07. Ink & Signal`
97
+ *Best for: Collaborative workspaces, CRM, project trackers, service desks, multi-tenant B2B apps.*
98
+ - **Surface Tokens:** Canvas `#fcfcfc` (`oklch(99.2% 0.002 100)`) · Well `#f5f5f4` · Subtle `#ebebea` · Rule `1px solid #e4e4e2`
99
+ - **Ink Tokens:** Primary `#171717` (`oklch(16% 0 0)`) · Secondary `#383838` · Muted `#666666`
100
+ - **Accent & Semantic:** Chromatic Teal `#0d7477` (`oklch(50% 0.095 190)`), Soft `#e6f6f6`
101
+ - **Typography:** Display `Epilogue` (700, `-0.035em`) · Body & Controls `Inter` (400/500/600) · IDs & Counts `IBM Plex Mono`
102
+ - **Geometry & Posture:** Hueless carbon ink on clean paper; teal marks only active/open state and primary CTA (`8px` control radius, `12px` wells, shadow reserved strictly for floating popovers/dialogs).
103
+
104
+ ### `08. Obsidian Stage`
105
+ *Best for: Media production suites, AI creative workflows, high-contrast SaaS launches, real-time analytics.*
106
+ - **Surface Tokens:** Canvas `#09090b` (`oklch(14% 0.005 270)`) · Elevated `#121216` · Subtle `#1c1c22` · Rule `1px solid #27272a`
107
+ - **Ink Tokens:** Primary `#fafafa` · Secondary `#d4d4d8` · Muted `#a1a1aa`
108
+ - **Accent & Semantic:** Cobalt Signal `#3b82f6` (`oklch(62% 0.19 258)`), Soft `rgba(59, 130, 246, 0.14)`
109
+ - **Typography:** Display `Space Grotesk` (600/700, `-0.03em`) · Body `Plus Jakarta Sans` (400/500) · Telemetry `JetBrains Mono`
110
+ - **Geometry & Posture:** Precision dark surface separated strictly by `1px solid #27272a` keylines and luminance steps (`8px` radius). Zero purple/indigo neon blooms or glowing card borders.
111
+
112
+ ---
113
+
114
+ ## 7. Domain 5 — Developer Tools, Observability & Security
115
+
116
+ ### `09. Graphite Instrument`
117
+ *Best for: Log explorers, APM tracing, DAST/pentest consoles, database studios, CI/CD pipelines.*
118
+ - **Surface Tokens:** Canvas `#0d1117` (`oklch(17.5% 0.012 255)`) · Pane `#161b22` · Subtle `#21262d` · Rule `1px solid #30363d`
119
+ - **Ink Tokens:** Primary `#e6edf3` · Secondary `#b1bac4` · Muted `#8b949e`
120
+ - **Accent & Semantic:** Amber Telemetry `#f59e0b` (`oklch(75% 0.16 75)` — dark ink `#0d1117` on filled buttons), Soft `rgba(245, 158, 11, 0.14)` · Severity: Critical `#f85149`, High `#db6d28`, Low `#3fb950`
121
+ - **Typography:** UI `IBM Plex Sans` (400/500/600) · Logs, Payloads, Traces & Queries `JetBrains Mono` (`tabular-nums`)
122
+ - **Geometry & Posture:** Keyboard-first multi-pane workbench (`4px` radius, `Cmd+K` bar, split log/trace inspector, zero marketing ornament).
123
+
124
+ ### `10. Technical Whiteprint`
125
+ *Best for: API documentation, architecture registries, CAD/spec viewers, schema & hardware documentation.*
126
+ - **Surface Tokens:** Canvas `#f4f7fb` (`oklch(97.2% 0.008 245)`) · Sheet `#ffffff` · Subtle `#e8eef6` · Rule `1px solid #cbd5e1` (Major register rule: `2px solid #13294b`)
127
+ - **Ink Tokens:** Primary `#13294b` (Prussian Ink) · Secondary `#2c4469` · Muted `#566d8e`
128
+ - **Accent & Semantic:** Drafting Cobalt `#1d4ed8` (`oklch(49% 0.19 260)`), Soft `#dbeafe`
129
+ - **Typography:** Display `Chakra Petch` (600, `-0.015em`) · Prose & UI `IBM Plex Sans` (400/500) · Specs, Endpoints & Units `IBM Plex Mono`
130
+ - **Geometry & Posture:** Square `0px` drafted keylines, specification register tables, dual-rail documentation layout with crisp code/parameter blocks.
131
+
132
+ ---
133
+
134
+ ## 8. Domain 6 — Commerce, Hospitality, Craft & Hardware
135
+
136
+ ### `11. Atelier Gallery`
137
+ *Best for: Architecture studios, boutique hospitality, furniture/ceramics commerce, specialty roasters, galleries.*
138
+ - **Surface Tokens:** Canvas `#f4f0e8` (`oklch(95.5% 0.012 78)`) · Card Stock `#faf8f4` · Subtle `#eae4d8` · Rule `1px solid #dcd4c5`
139
+ - **Ink Tokens:** Primary `#241d18` (Deep Umber) · Secondary `#463b33` · Muted `#6e6055`
140
+ - **Accent & Semantic:** Slate Ultramarine `#334e68` (`oklch(41% 0.075 248)`), Soft `#eaeff5`
141
+ - **Typography:** Display `Cormorant Garamond` (500/600, `-0.018em`, line-height `1.06`) · Body, Wall Labels & Checkout `Hanken Grotesk` (400/500/600) · Prices/Editions `Hanken Grotesk` (`tabular-nums`)
142
+ - **Geometry & Posture:** Crisp `2px` gallery corners, generous daylight imagery with captions placed cleanly beneath (never overlaid on cluttered gradients), quiet ruled specification tables.
143
+
144
+ ### `12. Kinetic Grid`
145
+ *Best for: Athletic gear, consumer electronics, ticketing & live events, fitness/training platforms, automotive.*
146
+ - **Surface Tokens:** Canvas `#f7f7f5` · Plate `#ffffff` · Subtle `#ededeb` · Rule `1px solid #d6d6d2` (Section header bar: `2px solid #111111`)
147
+ - **Ink Tokens:** Primary `#111111` · Secondary `#333333` · Muted `#636360`
148
+ - **Accent & Semantic:** Vermilion Signal `#dc2626` (`oklch(56% 0.21 27)`), Soft `#fef2f2`
149
+ - **Typography:** Display & Scoreboards `Barlow Condensed` (700 uppercase, `-0.01em`) · Body & Controls `Archivo` (400/500/600) · Splits, SKUs & Specs `JetBrains Mono`
150
+ - **Geometry & Posture:** High-contrast Swiss structural grid (`4px` radius), bold typographic hierarchy, crisp inventory/size matrices, zero soft pastel washes.
151
+
152
+ ---
153
+
154
+ ## 9. Domain 7 — Editorial, Publishing, EdTech & Knowledge
155
+
156
+ ### `13. Studio Proof`
157
+ *Best for: Digital publications, research journals, documentation hubs, writing studios, legal analysis.*
158
+ - **Surface Tokens:** Canvas `#f9f7f1` (`oklch(97.5% 0.010 90)`) · Reading Sheet `#ffffff` · Subtle `#f0ece1` · Rule `1px solid #e0dacb`
159
+ - **Ink Tokens:** Primary `#1c1917` · Secondary `#3f3a36` · Muted `#6b635b`
160
+ - **Accent & Semantic:** Editorial Crimson `#9f1239` (`oklch(45% 0.17 15)`), Soft `#fff1f2`
161
+ - **Typography:** Display `Fraunces` (600, `-0.02em`) · Long-form Prose `Source Serif 4` (`65ch–72ch` measure, `1.65` line-height) · UI Chrome & TOC `Work Sans` (400/500/600)
162
+ - **Geometry & Posture:** Distraction-free reading column flanked by receding table-of-contents and citation/footnote margin rails (`4px` radius).
163
+
164
+ ### `14. Botanical Field`
165
+ *Best for: EdTech courses, language & science learning, sustainability/climate platforms, community libraries.*
166
+ - **Surface Tokens:** Canvas `#f4f6f0` (`oklch(96.6% 0.012 125)`) · Sheet `#ffffff` · Subtle `#e7ece0` · Rule `1px solid #d5ddd0`
167
+ - **Ink Tokens:** Primary `#1c241b` · Secondary `#374436` · Muted `#5c6b5a`
168
+ - **Accent & Semantic:** Warm Ochre `#b45309` (`oklch(53% 0.14 55)`), Soft `#fef3c7` · Completion: Forest `#15803d`
169
+ - **Typography:** Display `Libre Baskerville` (400/700) · Learning UI & Exercises `Figtree` (400/500/600) · Curriculum Codes & Progress `IBM Plex Mono`
170
+ - **Geometry & Posture:** Structured syllabus rail + focused lesson canvas (`10px` radius, clear progress milestones, tactile quietness without childish gamification).
171
+
172
+ ---
173
+
174
+ ## 10. Domain 8 — Industrial, Logistics, Construction & Geospatial
175
+
176
+ ### `15. Formwork Concrete`
177
+ *Best for: Construction management, field engineering, manufacturing MES, warehouse WMS, heavy equipment.*
178
+ - **Surface Tokens:** Canvas `#eeece6` (`oklch(94.2% 0.008 82)`) · Work Plate `#f9f8f5` · Subtle `#e2dfd7` · Rule `1px solid #cbc7bc` (Plate top-bar: `3px solid #18181b`)
179
+ - **Ink Tokens:** Primary `#18181b` · Secondary `#36363a` · Muted `#575652`
180
+ - **Accent & Semantic:** Safety Orange `#c2410c` (`oklch(52% 0.18 38)` — passes WCAG AA `4.5:1` with `#ffffff` button ink), Soft `#ffedd5`
181
+ - **Typography:** Display `Oswald` (600/700, `-0.005em`) · UI & Field Forms `Archivo` (400/500/600) · Tolerances, Tonnage & Lot IDs `IBM Plex Mono` (`tabular-nums`)
182
+ - **Geometry & Posture:** Square `0px` board-cast edges, high-target field controls (`>= 44px`), unambiguous work-order status plates.
183
+
184
+ ### `16. Meridian Survey`
185
+ *Best for: Fleet dispatch, supply chain & freight tracking, GIS/geospatial consoles, energy & utility grids.*
186
+ - **Surface Tokens:** Canvas `#f3f5f7` (`oklch(96.5% 0.005 235)`) · Map/Data Overlay `#ffffff` · Subtle `#e5e9ef` · Rule `1px solid #cfd6e0`
187
+ - **Ink Tokens:** Primary `#0f172a` · Secondary `#2d3a4f` · Muted `#58677e`
188
+ - **Accent & Semantic:** Survey Teal `#0f766e` (`oklch(51% 0.096 186)`), Waypoint Alert `#b45309`, Soft `#f0fdfa`
189
+ - **Typography:** Display `Sora` (600, `-0.02em`) · Dispatch UI `Public Sans` (400/500/600) · Coordinates, ETAs & Manifests `JetBrains Mono` (`tabular-nums`)
190
+ - **Geometry & Posture:** Split canvas (geospatial/timeline viewport + docked high-density manifest drawer, `6px` radius, crisp `1px` keylines).
191
+
192
+ ---
193
+
194
+ ## 11. Selection & Lock Protocol
195
+
196
+ 1. **Match Domain First:** Map the user's product to one of the 8 domains in Section 1. Never cross-contaminate genres (e.g., never apply `09. Graphite Instrument` dark terminal aesthetics to `01. Sovereign Slate` civic portals).
197
+ 2. **Alternate Within Domain:** Choose between Option A (cool/structural) and Option B (warm/editorial) based on brand tone or to diverge from recent builds.
198
+ 3. **Declare Lock Explicitly:** State `THEME LOCKED: <ID. Name>` during pre-flight and translate all tokens into CSS custom properties (`--bg-canvas`, `--bg-surface`, `--text-ink`, `--border-rule`, `--accent-primary`) before writing component markup.
@@ -86,7 +86,7 @@ Slop is not static. As soon as AI models are instructed to avoid one set of clic
86
86
 
87
87
  ```
88
88
  ┌────────────────────────────────────────────────────────┐
89
- │ THE THREE WAVES OF AI DESIGN TELLS │
89
+ │ THE FOUR WAVES OF AI DESIGN TELLS │
90
90
  ├────────────────────────────────────────────────────────┤
91
91
  │ Wave 1 (2023–2024): The Neon Starter Pack │
92
92
  │ Violet/cyan gradients, glassmorphism, floating drop │
@@ -100,16 +100,26 @@ Slop is not static. As soon as AI models are instructed to avoid one set of clic
100
100
  │ Yellow-cream parchment (#FDFBF7) + terracotta/rust, │
101
101
  │ giant italic serif display, broadsheet newspaper grids,│
102
102
  │ performative index numbers (01 / 02), fake coordinates.│
103
+ ├────────────────────────────────────────────────────────┤
104
+ │ Wave 4 (2026): The Geek / Terminal Cosplay │
105
+ │ ASCII art charts, pseudo-telemetry consoles, fake dark │
106
+ │ terminal frames forced onto non-developer products. │
103
107
  └────────────────────────────────────────────────────────┘
104
108
  ```
105
109
 
106
110
  ### 5.1 Defending Against Wave 3 (Editorial Slop)
107
- The remedy published for Wave 1 and 2 was "warm it up and make it editorial". Models adopted this wholesale, making warm editorial the most instantly recognizable AI tell of 2026:
111
+ The remedy published for Wave 1 and 2 was "warm it up and make it editorial". Models adopted this wholesale, making warm editorial an instantly recognizable AI tell:
108
112
  - **Terracotta & Cream Monoculture:** Banned as an unprompted AI reflex. Warmth must come from low-chroma stone, authentic product photography, or deep rich ink—not default yellow-cream backgrounds paired with rust orange.
109
113
  - **Oversized Italic Serif Cliché:** Do not use italic serif display as a superficial shortcut to "luxury" or "premium" unless the client's actual brand specifically requires it.
110
114
  - **Broadsheet Cosplay:** Hairline 1px borders dividing zero-radius dense columns to mimic an 1890s newspaper is an artificial costume. Structure must emerge from clear spatial scale and tonal contrast.
111
115
  - **Performative Agency Metadata:** Banned decorative index numbering (`01`, `02`, `(001)`), fake coordinates (`37.77° N`), and version stamps (`©2026 — Scroll`) that convey zero operational data.
112
116
 
117
+ ### 5.2 Defending Against Wave 4 (Geek & Terminal Cosplay)
118
+ When models are forbidden from building generic cards or warm editorial broadsheets, they frequently overcorrect by turning *every* application into a cyberpunk or terminal telemetry dashboard:
119
+ - **Hard Ban on Non-Developer Terminals:** Never enclose ordinary educational, institutional, or business data inside a fake terminal window with prompt symbols (`$`, `>`).
120
+ - **No ASCII Charts or Brackets:** Never generate ASCII art radar charts (`/\`, `[■■■□□]`), pseudo-status brackets (`[STATUS: 112]`), or terminal line-drawings. Use semantic HTML5 `<progress>` elements, styled SVG bars, and clean tabular typography.
121
+ - **Zero Pseudo-Telemetry Jargon:** Never label normal administrative or assessment features with fake aerospace/hacker jargon ("telemetry console", "neural assessment engine", "quantum telemetry"). Call it what it is plainly in human language.
122
+
113
123
  ---
114
124
 
115
125
  ## 6. Substance Over Restraint (Anti-Sterile Empty Voids)
@@ -124,4 +134,26 @@ Stripping away slop ornaments (cards, borders, badges, gradients) is only the fi
124
134
  2. **Full-Field Color Anchors:** Instead of scattering small floating cards, ground layouts with full-bleed background tone shifts (e.g., transitioning from a clean light canvas into a deep, tinted section floor).
125
135
  3. **Authentic Interface Fragments:** For software products, construct working, interactive HTML/CSS UI components (a data table with real rows, an interactive calculation filter, or live code tabs) rather than empty illustrations or placeholder diagrams.
126
136
 
137
+ ---
138
+
139
+ ## 7. The Card-Soup Syndrome & Unified Spatial Canvas
140
+
141
+ The most prevalent tell of generative AI frontends in 2026 is **The Card-Soup Syndrome (Archipelago of Floating Cards)**.
142
+
143
+ ### 7.1 What is Card-Soup?
144
+ Because LLMs are trained on millions of generic Tailwind and component library examples, their immediate probabilistic reflex when laying out any section is to wrap it inside:
145
+ `<div class="bg-white rounded-xl border border-slate-200 p-6 shadow-sm">`
146
+
147
+ When applied across a full screen, the layout collapses into 5–8 disconnected white boxes floating on a grayish background. To human eyes, this immediately screams "low-effort AI template".
148
+
149
+ ### 7.2 The Structural Rule: Cards vs. Spatial Architecture
150
+ - **Cards are strictly for discrete, interchangeable, dynamic items:** Product catalog grids, kanban task cards, or gallery thumbnails.
151
+ - **Cards are FORBIDDEN as structural section wrappers:** Never wrap an application header, tab bar, left workflow rail, or primary data table in separate, floating rounded boxes!
152
+
153
+ ### 7.3 The Unified Spatial Canvas Invariant
154
+ In professional human-crafted software (Linear, Stripe, Vercel, GitHub):
155
+ 1. **Single Cohesive Plane:** The application is housed in a unified spatial sheet or integrated rails, not an archipelago of floating islands.
156
+ 2. **Hairline Boundaries:** Spatial separation is established through clean 1px borders (`border-r border-slate-200`, `divide-y divide-slate-100`) and subtle background tonal shifts (`#f8fafc` canvas background $\to$ `#ffffff` primary sheet $\to$ `#fcfcfd` auxiliary rail).
157
+ 3. **High Data-to-Padding Ratio:** Tables must not be padded with bloated 24px–32px empty space. Use compact, scannable cell heights ($10\text{px}–14\text{px}$ vertical padding) with tabular monospace figures (`font-mono tabular-nums`).
158
+
127
159
 
@@ -0,0 +1,89 @@
1
+ # Domain & Genre Calibration (Anti-Geek Cosplay)
2
+
3
+ > **Core Invariant:** The real-world problem domain dictates visual posture, NEVER generic AI trends. A school evaluation system must look like an educational instrument; an accounting app must look like a ledger; only actual developer tools should ever look like a terminal.
4
+
5
+ ---
6
+
7
+ ## 1. The 4 Target Genres & Aesthetic Contracts
8
+
9
+ Before laying out a single component or proposing a visual design, classify the project into one of four real-world genres:
10
+
11
+ ```
12
+ ┌────────────────────────────────────────────────────────────────────────┐
13
+ │ THE 4 REAL-WORLD GENRES │
14
+ ├────────────────────────────────────────────────────────────────────────┤
15
+ │ 1. Civic, Institutional & Educational (Gov, School, NGO, Compliance) │
16
+ │ 2. Enterprise & B2B Operational (ERP, CRM, Accounting, Inventory) │
17
+ │ 3. Commercial SaaS & Conversion (Public Landing, Pricing, Product) │
18
+ │ 4. Developer Tools & Infrastructure (SDKs, CLIs, Observability, APIs) │
19
+ └────────────────────────────────────────────────────────────────────────┘
20
+ ```
21
+
22
+ ### Genre 1: Civic, Institutional & Educational
23
+ *Examples: SAURAN evaluation, academic portals, scouting/youth accreditation, public services, municipal audit.*
24
+
25
+ - **Visual Tone:** Dignified, calm, accessible, structured, and trustworthy.
26
+ - **Surface & Palette:** Clean neutral ground (pure white or soft stone background), crisp 1px borders (`border-border`), high-contrast dark foreground text, semantic status pills (e.g. emerald for *Terverifikasi*, amber for *Butuh Revisi*, slate for *Pending*).
27
+ - **Core Components:**
28
+ - Clear rubric tables with explicit weight/point columns.
29
+ - Category assessment cards showing actual scores vs targets.
30
+ - Step progress indicators for verification workflows.
31
+ - Summary scorecard with clear totals and action buttons.
32
+ - **ABSOLUTE PROHIBITIONS (Second-Order Slop):**
33
+ - **NO Terminal / CLI Cosplay:** Never put evaluation data inside a faux terminal, command prompt window, or ASCII box.
34
+ - **NO ASCII Art or Pseudo-Radars:** Never draw ASCII charts (`/\`, `[■■■□□]`, `[2026]`). Use semantic progress bars (`<progress>` or standard div progress) and proper tabular rows.
35
+ - **NO Dark Cyberpunk Mode:** Never force dark mode or neon glow on institutional workflows.
36
+ - **NO Jargon Injections:** Never label an assessment tool with pseudo-sci-fi phrases ("telemetry console", "evaluation engine", "neural scanner", "quantum monitor"). Call it what it is: *Ringkasan Evaluasi*, *Rubrik Penilaian*, *Status Verifikasi*.
37
+
38
+ ---
39
+
40
+ ### Genre 2: Enterprise & B2B Operational
41
+ *Examples: Internal operations, HR portals, supply chain management, financial reporting.*
42
+
43
+ - **Visual Tone:** Compact, data-dense, predictable, and keyboard-efficient.
44
+ - **Surface & Palette:** Neutral surfaces, subtle divider lines, minimal elevation shadows (flat or `shadow-sm`), clear focus rings.
45
+ - **Core Components:**
46
+ - Data tables with sticky headers, sortable columns, and filter bars.
47
+ - Master-detail side rails or drawers for drilling into row details.
48
+ - Monospace only for aligned financial values (`font-mono tabular-nums`).
49
+ - **ABSOLUTE PROHIBITIONS:**
50
+ - **NO Misplaced Heroes:** Never place giant marketing hero sections, splash banners, or promotional copywriting inside an operational dashboard.
51
+ - **NO Decorative Metric Clutter:** Every stat card must correspond to an actual query or measurable KPI. Omit generic "Welcome back, User!" filler.
52
+
53
+ ---
54
+
55
+ ### Genre 3: Commercial SaaS & Conversion
56
+ *Examples: Marketing landing pages, product launch pages, pricing tiers.*
57
+
58
+ - **Visual Tone:** Sharp, decisive, persuasive, authentic conviction.
59
+ - **Surface & Palette:** Generative typographic scale contrast ($Display \ge 3.5\times Body$), tight leading (`leading-[1.05]`), full-bleed background anchor, authentic product screenshots or functional interactive calculators.
60
+ - **ABSOLUTE PROHIBITIONS:**
61
+ - **NO Cliché Gradients:** Saturated purple-to-indigo or cyan-to-violet linear gradients.
62
+ - **NO Symmetrical 3-Card Grid:** Identical cards with Lucide icons in pastel rounded squares.
63
+ - **NO Fabricated Proof:** Fake partner logos or manufactured customer testimonials.
64
+
65
+ ---
66
+
67
+ ### Genre 4: Developer Tools & Infrastructure
68
+ *Examples: CLI tools, API documentation, log viewers, query consoles.*
69
+
70
+ - **Visual Tone:** High technical precision, compact syntax highlighting, dark/slate neutral grounding or clean technical whiteprint.
71
+ - **Core Components:** Copyable command blocks, real interactive code playgrounds, keyboard shortcut prompts.
72
+ - **ABSOLUTE RULE:** This developer aesthetic is **RESERVED EXCLUSIVELY FOR DEVELOPER PRODUCTS**. Never leak terminal conventions into Genre 1, 2, or 3.
73
+
74
+ ### Specialized Real-World Sub-Domains (Mapped in `craft/themes-catalog.md`)
75
+ When working in Healthcare, Physical Commerce/Hospitality, Editorial/EdTech, or Industrial/Field Logistics, select their dedicated domain pair in `references/craft/themes-catalog.md` (`Pharmacy Calm` / `Clinical Precision`, `Atelier Gallery` / `Kinetic Grid`, `Studio Proof` / `Botanical Field`, `Formwork Concrete` / `Meridian Survey`) rather than flattening them into generic corporate SaaS.
76
+
77
+ ---
78
+
79
+ ## 2. The Purpose-Gate (Zero Unearned Widgets)
80
+
81
+ Every component, widget, badge, or section must pass the Purpose-Gate:
82
+
83
+ > **The Purpose-Gate Test:**
84
+ > *"What concrete user decision or task does this element directly enable?"*
85
+
86
+ 1. If the element exists solely to "look high-tech", "fill empty space", or "make the page look interactive" without real underlying data $\to$ **DELETE IT**.
87
+ 2. Never invent simulated consoles, fake real-time feeds, or unprompted sliders.
88
+ 3. If the user asks for an evaluation summary, provide clear, functional assessment cards and tables—never decorative cosplay.
89
+
@@ -51,3 +51,29 @@ Use for: Dashboards, data grids, admin consoles, editors, settings, financial le
51
51
  - **Zero Decorative Halos:**
52
52
  - Never wrap status dots or cards in glowing radial blurs (`shadow-[0_0_12px_#10b981]`). Keep indicators solid and functional.
53
53
 
54
+ ---
55
+
56
+ ## 4. Audit & Inspection Finding Rows (Action Affordance Invariant)
57
+
58
+ - **Interactive Row Contract:**
59
+ - Finding rows, audit line items, and checklist items must never be rendered as dead, static text blocks.
60
+ - Every finding row (e.g. `FT-01: Bukti fisik belum dilampirkan`) must provide:
61
+ 1. **Primary Action Affordance:** Explicit inline trigger button (e.g. `Periksa Bukti`, `Minta Rincian`, or expandable chevron).
62
+ 2. **Attachment Badge:** File type badge (`PDF`, `XLSX`), byte size, and upload timestamp.
63
+ 3. **Status Pill:** High-contrast semantic pill (`Perlu Tindak Lanjut`, `Menunggu Konfirmasi`, `Selesai`).
64
+ 4. **Hover State:** `hover:bg-muted/40 transition-colors` across the entire row bounding box.
65
+
66
+ ---
67
+
68
+ ## 5. Dual-Navigation De-Confliction (Lenses vs Lifecycle)
69
+
70
+ - **Separation of Mental Models:**
71
+ - **Horizontal Tabs**: View-Port Filter Lenses (switching data views, e.g. *Ringkasan*, *Rubrik Domain*, *Temuan*, *Riwayat*). These change what information is rendered on the stage.
72
+ - **Vertical Rail**: Immutable Lifecycle Progression (e.g. *1. Unggah Dokumen $\to$ 2. Verifikasi $\to$ 3. Penilaian $\to$ 4. Konfirmasi Fisik $\to$ 5. Rangkuman*). This reflects where the entity is in its operational state.
73
+ - **Accenting Active Lifecycle Step:**
74
+ - Never let the current active step in the lifecycle rail look identical to future unstarted steps.
75
+ - Active step: highlighted with high-contrast accent ring or filled circle (`bg-primary text-primary-foreground`) with an active descriptor ("Tahap aktif verifikasi").
76
+ - Completed steps: clear muted checks (`text-emerald-600` with subtle strike or timestamp).
77
+ - Pending steps: muted borders (`border-border text-muted-foreground`).
78
+
79
+
@@ -30,7 +30,7 @@ When building or redesigning a Persuade surface, never let the LLM default to th
30
30
  │ offset against an interactive preview, ROI calculator, or live UI. │
31
31
  │ 2. The Monolith Ledger: Single-column dense reading measure with │
32
32
  │ full-bleed horizontal rows, hairline dividers, and deep ink. │
33
- │ 3. Product-Led Canvas: Live application interface or CLI terminal │
33
+ │ 3. Product-Led Canvas: Live application interface or workflow canvas │
34
34
  │ dominates the first viewport; copy recedes to tightly frame it. │
35
35
  │ 4. Kinetic Proof Stream: Alternating proof blocks driven by verifiable │
36
36
  │ benchmarks, architectural diagrams, and real data payloads. │
@@ -38,7 +38,7 @@ When building or redesigning a Persuade surface, never let the LLM default to th
38
38
  ```
39
39
 
40
40
  - **Posture Selection Protocol:**
41
- - If real software or CLI exists $\to$ **Posture 3 (Product-Led Canvas)**.
41
+ - If real software interface exists $\to$ **Posture 3 (Product-Led Canvas)**.
42
42
  - If quantitative savings or enterprise value proposition $\to$ **Posture 1 (Asymmetric Stage)**.
43
43
  - If technical documentation, whitepaper, or architectural manifesto $\to$ **Posture 2 (The Monolith Ledger)**.
44
44
  - If performance benchmarks, protocol comparisons, or telemetry proof $\to$ **Posture 4 (Kinetic Proof Stream)**.
@@ -52,7 +52,7 @@ When building or redesigning a Persuade surface, never let the LLM default to th
52
52
  - Subtitle: `text-lg text-muted-foreground max-w-xl`
53
53
  - Actions: `flex flex-wrap items-center gap-4 pt-2`
54
54
  - **Right Artifact (5 cols):** `lg:col-span-5`
55
- - Authentic artifact, interactive widget, or live ROI card: `rounded-2xl border border-border/80 bg-card p-6 shadow-sm`
55
+ - Authentic artifact, interactive widget, or live score/ROI card: `rounded-2xl border border-border/80 bg-card p-6 shadow-sm`
56
56
  - Zero equal-weight card grids below.
57
57
 
58
58
  #### Posture 2: The Monolith Ledger
@@ -67,8 +67,8 @@ When building or redesigning a Persuade surface, never let the LLM default to th
67
67
  - **Compact Hero Frame:** `max-w-2xl space-y-4 mb-10`
68
68
  - Headline: `text-4xl sm:text-6xl font-extrabold tracking-tight`
69
69
  - 1-sentence value claim + 1 primary action.
70
- - **Hero Canvas (70% Viewport Lead):** `w-full rounded-2xl border border-border/80 bg-slate-950 p-2 shadow-2xl`
71
- - Real interface fragment or live demo canvas dominating the first viewport.
70
+ - **Hero Canvas (70% Viewport Lead):** `w-full rounded-2xl border border-border/80 bg-card p-3 shadow-xl`
71
+ - Real interface fragment or live demo canvas dominating the first viewport. Respect project theme tokens; never force artificial dark backgrounds or terminal frames unless the target product is an actual CLI/developer tool.
72
72
 
73
73
  ---
74
74
 
@@ -80,15 +80,16 @@ When building or redesigning a Persuade surface, never let the LLM default to th
80
80
  - *Flagship Feature:* Full-width container or asymmetric 8/4 split showing the primary capability in action.
81
81
  - *Supporting Capabilities:* Compact 2-column checklist or a structured comparison table.
82
82
  - **The Signature Element:**
83
- - Every Persuade surface must feature exactly **one memorable signature element** on the first screen:
84
- - An interactive pricing slider that recalculates savings in real time.
85
- - A live terminal code editor running the SDK quickstart.
83
+ - Every Persuade surface may feature at most **one memorable signature element** on the first screen that directly reflects the product domain:
84
+ - An interactive calculator or estimator that recalculates results in real time.
86
85
  - An unedited, high-resolution product screenshot showing real user data.
86
+ - A live interactive UI fragment (e.g., an assessment scorecard preview for educational tools, a filterable ledger row for accounting tools).
87
+ - **Hard Ban on Faux-Terminal Cosplay:** Never inject terminal prompts, ASCII art, or pseudo-telemetry consoles into non-developer products.
87
88
  - A giant counter of marks or animated numbers is a decorative reflex, not a signature.
88
89
 
89
90
  ---
90
91
 
91
- ## 3. Material Honesty & Proof of Reality
92
+ ## 4. Material Honesty & Proof of Reality
92
93
 
93
94
  - **Zero Fabricated Evidence:**
94
95
  - Never invent customer quotes, fake partner logos ("Acme Corp, Pied Piper"), or fabricated performance metrics ("10,000+ teams trust us").
@@ -25,15 +25,10 @@ When executing a **Full Redesign** on an existing template or page (`.blade.php`
25
25
  - Separate product truth (names, prices, verified claims) from discarded markup.
26
26
  2. **Step 2: Isolate / Discard Old Markup**
27
27
  - Treat the old layout as an anti-reference. Do not perform incremental class swapping on it.
28
- 3. **Step 3: Author Standalone HTML Prototype & Preview**
29
- - Create an ephemeral standalone prototype in the brain directory: `<appDataDir>/brain/<id>/preview.html`.
30
- - Select 1 of the 4 Structural Postures (`references/modes/persuade.md` or `operate.md`).
31
- - Use Tailwind via CDN and realistic sample data.
32
- - Run zero-dependency visual capture:
33
- ```bash
34
- asc preview <path_to_preview.html>
35
- ```
36
- Inspect the captured image at `%TEMP%/asc-preview-active.png` (or pass `--open` to view in OS browser). Verify typographic scale ($Display \ge 3.5\times Body$) and full-field grounding.
28
+ 3. **Step 3: Author Isolated Prototype / Structural Layout**
29
+ - When building a complex new surface, draft the isolated DOM layout first using 1 of the 4 Structural Postures (`references/modes/persuade.md` or `operate.md`).
30
+ - Use design tokens and realistic sample data.
31
+ - Verify typographic scale ($Display \ge 3.5\times Body$) and full-field spatial grounding before production injection.
37
32
  4. **Step 4: Re-inject Data Contracts into Production**
38
33
  - Transfer the proven clean geometry into the project file (`welcome.blade.php`, `Page.tsx`).
39
34
  - Re-bind the dynamic data loops, Blade/React variables, and event handlers.
@@ -25,17 +25,20 @@ function printUsage() {
25
25
  console.log('Plugin install (always-on, no per-project files):');
26
26
  console.log(' Claude Code: /plugin marketplace add fatidaprilian/Agentic-Senior-Core');
27
27
  console.log(' Codex CLI: codex plugins install agentic-senior-core\n');
28
- console.log('Global install (all projects, zero project files):');
29
- console.log(' asc global --antigravity --codex --cline --roo --kilocode --kiro --openhands --windsurf --copilot --all\n');
28
+ console.log('Global install (auto-detects installed tools, zero project files):');
29
+ console.log(' asc global');
30
+ console.log(' asc global --all\n');
30
31
  console.log('Adapter install (one file per project):');
31
32
  console.log(' asc adapter --cursor --devin --cline --copilot --kiro --continue --zed --aider --kilocode --roo --openhands --windsurf --all\n');
32
33
  console.log('Commands:');
34
+ console.log(' global Auto-detect and install rules to user-level (global) locations');
33
35
  console.log(' adapter Generate instruction-tier adapter files');
34
- console.log(' global Install rules to user-level (global) locations');
36
+ console.log(' status Show detected IDEs and install hints');
37
+ console.log(' dedup Scan codebase for duplicate code blocks (Rule of Three)');
38
+ console.log(' bootstrap List or seed anti-slop preference rules');
35
39
  console.log(' install-git-hook Install Git pre-commit hook for duplicate code enforcement');
36
40
  console.log(' uninstall Remove ASC adapter files and git hooks from this project');
37
41
  console.log(' clean Remove v4 per-project artifacts');
38
- console.log(' status Show detected IDEs and install hints');
39
42
  console.log(' preview Render zero-dependency multi-browser snapshot or preview');
40
43
  console.log(' --version Show version');
41
44
  console.log(' --help Show this help');
@@ -91,6 +94,18 @@ async function main() {
91
94
  return;
92
95
  }
93
96
 
97
+ if (commandArgument === 'dedup') {
98
+ const { runDedupCommand } = await import('../lib/cli/commands/dedup.mjs');
99
+ await runDedupCommand(commandArguments);
100
+ return;
101
+ }
102
+
103
+ if (commandArgument === 'bootstrap') {
104
+ const { runBootstrapCommand } = await import('../lib/cli/commands/bootstrap.mjs');
105
+ await runBootstrapCommand(commandArguments);
106
+ return;
107
+ }
108
+
94
109
  if (commandArgument === 'preview') {
95
110
  const { runPreviewCommand } = await import('../lib/cli/commands/preview.mjs');
96
111
  await runPreviewCommand(commandArguments);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-senior-core",
3
- "version": "6.16.2",
3
+ "version": "6.16.5",
4
4
  "description": "Universal AI coding rules. Write code like a staff engineer.",
5
5
  "author": "fatidaprilian",
6
6
  "license": "MIT",
@@ -14,5 +14,5 @@
14
14
  "skills": [
15
15
  ".agents/plugins/agentic-senior-core/skills/"
16
16
  ],
17
- "hooks": ".agents/plugins/agentic-senior-core/hooks.json"
17
+ "hooks": ".agents/plugins/agentic-senior-core/hooks/hooks.json"
18
18
  }
@@ -10,6 +10,7 @@ import { compressRgOutput } from './adapters/rg.mjs';
10
10
  import { buildAscxFooter, shouldWriteSafetyTee } from './formatter.mjs';
11
11
  import { classifyAscxInvocation, parseAscxCommand } from './lexer.mjs';
12
12
  import { writeRawTeeFile } from './tee-writer.mjs';
13
+ import { prepareSpawnInvocation } from './windows-spawn.mjs';
13
14
 
14
15
  const ADAPTERS = {
15
16
  'git-diff': compressGitDiffOutput,
@@ -21,20 +22,6 @@ const ADAPTERS = {
21
22
  'rg': compressRgOutput,
22
23
  };
23
24
 
24
- function buildCommandEnvironment(baseEnvironment, parsedCommand) {
25
- const commandEnvironment = { ...baseEnvironment };
26
-
27
- for (const assignment of parsedCommand.environment) {
28
- const separatorIndex = assignment.indexOf('=');
29
- const variableName = assignment.slice(0, separatorIndex);
30
- const variableValue = assignment.slice(separatorIndex + 1);
31
-
32
- commandEnvironment[variableName] = variableValue;
33
- }
34
-
35
- return commandEnvironment;
36
- }
37
-
38
25
  function runSpawnedCommand(parsedCommand, options = {}) {
39
26
  const {
40
27
  cwd = process.cwd(),
@@ -43,19 +30,10 @@ function runSpawnedCommand(parsedCommand, options = {}) {
43
30
  } = options;
44
31
 
45
32
  return new Promise((resolve) => {
46
- const useWindowsNpmShell = process.platform === 'win32'
47
- && parsedCommand.executable === 'npm'
48
- && shell === false;
49
- const executable = shell
50
- ? parsedCommand.commandText
51
- : parsedCommand.executable;
52
- const args = shell ? [] : parsedCommand.args;
53
- const childProcess = spawn(executable, args, {
54
- cwd,
55
- env: buildCommandEnvironment(env, parsedCommand),
56
- shell: shell || useWindowsNpmShell,
57
- windowsHide: true,
58
- });
33
+ const prepared = prepareSpawnInvocation(parsedCommand, { cwd, env, shell });
34
+ const childProcess = prepared.args === undefined
35
+ ? spawn(prepared.command, prepared.options)
36
+ : spawn(prepared.command, prepared.args, prepared.options);
59
37
  let stdout = '';
60
38
  let stderr = '';
61
39