@ryuenn3123/agentic-senior-core 3.0.22 → 3.0.23

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.
@@ -27,6 +27,18 @@ The agent must summarize what it used from that research, discard what does not
27
27
 
28
28
  User-supplied research may influence the candidate set for motion, scroll, UI primitives, canvas/3D, charts, icons, typography, and interaction patterns, but the final choice must still be project-fit, accessible, performant, and maintainable.
29
29
 
30
+ ## Advanced Conceptual Anchor
31
+
32
+ If the user requests UI work but provides no external research, design reference, screenshot study, or library note, do not start coding immediately. First synthesize one advanced conceptual anchor that will unify the interface.
33
+
34
+ Do not use basic software UI labels as the final anchor, including "dashboard", "portal", "cards", "admin panel", "SaaS shell", or "minimalist interface".
35
+
36
+ The agent must consider at least three substantially different candidate anchors internally, discard predictable or generic candidates, and record only the surviving anchor and concise rationale. Do not expose hidden deliberation or the rejected candidate list.
37
+
38
+ The final anchor must come from broad non-template domains such as complex physical engineering, high-end industrial design, experimental editorial structure, advanced architecture, scientific instrumentation, or spatial information systems. These are search domains, not style presets.
39
+
40
+ Write the chosen anchor into `docs/design-intent.json` as `conceptualAnchor`, then derive typography, spacing, density, color behavior, morphology, motion, and responsive composition from that single anchor. If a later design choice does not logically follow from the anchor, revise the contract before coding.
41
+
30
42
  ## Zero-Based Redesign Protocol
31
43
 
32
44
  If the user says "redesign from zero", "redesain dari 0", "ulang dari 0", "research ulang", or equivalent reset language, activate reset mode.
@@ -89,6 +101,7 @@ For every UI task, define how major surfaces change across mobile, tablet, and d
89
101
  The JSON must stay machine-readable and project-specific. It should record:
90
102
  - the confirmed project context and assumptions to validate
91
103
  - agent-chosen visual direction, not scaffold-chosen direction
104
+ - `conceptualAnchor` and how typography, spacing, morphology, motion, and responsive composition derive from it when no external research was provided
92
105
  - agent-chosen semantic color roles, typography system, spacing rhythm, and motion approach
93
106
  - token layering with primitive, semantic, and component tokens
94
107
  - viewport mutation rules for mobile, tablet, and desktop
@@ -107,6 +120,7 @@ The review must block or flag:
107
120
  - scale-only responsive behavior
108
121
  - unresearched dependency choices
109
122
  - default component-kit styling without product rationale
123
+ - missing or disconnected `conceptualAnchor` when no external design research was provided
110
124
  - visual direction copied from unrelated memory or external references
111
125
  - genericity findings that cannot name the exact drift signal
112
126
 
@@ -1,5 +1,5 @@
1
1
  {
2
- "generatedAt": "2026-04-24T11:30:00.104Z",
2
+ "generatedAt": "2026-04-24T15:04:58.174Z",
3
3
  "reportName": "memory-continuity-benchmark",
4
4
  "schemaVersion": "1.0.0",
5
5
  "passed": true,
package/.cursorrules CHANGED
@@ -1,6 +1,6 @@
1
1
  # AGENTIC-SENIOR-CORE DYNAMIC GOVERNANCE RULESET
2
2
 
3
- Generated by Agentic-Senior-Core CLI v3.0.22
3
+ Generated by Agentic-Senior-Core CLI v3.0.23
4
4
  Timestamp: 2026-04-24T06:02:48.303Z
5
5
  Selected policy file: .agent-context/policies/llm-judge-threshold.json
6
6
 
package/.windsurfrules CHANGED
@@ -1,6 +1,6 @@
1
1
  # AGENTIC-SENIOR-CORE DYNAMIC GOVERNANCE RULESET
2
2
 
3
- Generated by Agentic-Senior-Core CLI v3.0.22
3
+ Generated by Agentic-Senior-Core CLI v3.0.23
4
4
  Timestamp: 2026-04-24T06:02:48.303Z
5
5
  Selected policy file: .agent-context/policies/llm-judge-threshold.json
6
6
 
@@ -147,6 +147,60 @@ function buildDesignIntentContractObject({
147
147
  ],
148
148
  finalDecisionAuthority: 'agent-llm-from-project-fit-accessibility-performance-maintainability-and-current-official-docs',
149
149
  },
150
+ conceptualAnchor: {
151
+ mode: 'required-when-no-external-research',
152
+ seedMode: 'selection-policy-only',
153
+ requiresAgentSelectionBeforeUiImplementation: true,
154
+ candidateSelectionPolicy: {
155
+ considerAtLeast: 3,
156
+ discardPredictableCandidates: true,
157
+ doNotRevealHiddenCandidateList: true,
158
+ outputOnlyChosenAnchor: true,
159
+ },
160
+ forbiddenFinalAnchorTerms: [
161
+ 'dashboard',
162
+ 'portal',
163
+ 'cards',
164
+ 'admin-panel',
165
+ 'saas-shell',
166
+ 'minimalist-interface',
167
+ ],
168
+ sourceDomains: [
169
+ 'complex-physical-engineering',
170
+ 'high-end-industrial-design',
171
+ 'experimental-editorial-structure',
172
+ 'advanced-architecture',
173
+ 'scientific-instrumentation',
174
+ 'spatial-information-systems',
175
+ ],
176
+ requiredDerivedAxes: [
177
+ 'typography',
178
+ 'spacing',
179
+ 'density',
180
+ 'color-behavior',
181
+ 'morphology',
182
+ 'motion',
183
+ 'responsive-composition',
184
+ ],
185
+ finalAnchorContract: {
186
+ requiredFields: [
187
+ 'name',
188
+ 'sourceDomain',
189
+ 'rationale',
190
+ 'derivedTokenLogic',
191
+ 'cohesionChecks',
192
+ ],
193
+ derivedTokenLogicAxes: [
194
+ 'typography',
195
+ 'spacing',
196
+ 'density',
197
+ 'color-behavior',
198
+ 'morphology',
199
+ 'motion',
200
+ 'responsive-composition',
201
+ ],
202
+ },
203
+ },
150
204
  mathSystems: {
151
205
  typographyScaleRatio: inferredKeywords.typographyScaleRatio,
152
206
  baseGridUnit: inferredKeywords.baseGridUnit,
@@ -430,6 +484,8 @@ function buildDesignIntentContractObject({
430
484
  genericitySignals: [
431
485
  'offline-prescribed-style-used-as-final-direction',
432
486
  'unresearched-library-or-framework-choice',
487
+ 'missing-conceptual-anchor-without-external-research',
488
+ 'visual-decisions-not-derived-from-conceptual-anchor',
433
489
  'default-component-kit-treatment-without-product-rationale',
434
490
  'scale-only-responsive-layout',
435
491
  'template-shell-without-product-rationale',
@@ -438,6 +494,7 @@ function buildDesignIntentContractObject({
438
494
  'inaccessible-or-decorative-motion',
439
495
  ],
440
496
  validBoldSignals: [
497
+ 'single-cohesive-conceptual-anchor',
441
498
  'context-derived-visual-direction',
442
499
  'official-docs-backed-library-choice',
443
500
  'responsive-recomposition-by-task-priority',
@@ -485,11 +542,14 @@ function buildDesignIntentContractObject({
485
542
  'Modern libraries and interaction patterns may be used when the LLM verifies they fit the project and current official docs.',
486
543
  'Motion may be rich and memorable when it improves the product experience, but it must stay purposeful, performant, and optional for reduced-motion users.',
487
544
  'At least one visual, interaction, content, or motion decision must be recognizable at a glance and justified from context.',
545
+ 'When no external design research is provided, a single advanced conceptual anchor must unify typography, spacing, morphology, motion, and responsive composition.',
488
546
  'When the user asks for a zero-based redesign, existing UI becomes content and behavior evidence only; prior visual DNA must be discarded unless explicitly approved.',
489
547
  ],
490
548
  forbiddenPatterns: [
491
549
  'offline-prescribed-style-used-as-final-direction',
492
550
  'unresearched-library-or-framework-choice',
551
+ 'missing-conceptual-anchor-without-external-research',
552
+ 'visual-decisions-not-derived-from-conceptual-anchor',
493
553
  'default-component-kit-treatment-without-product-rationale',
494
554
  'scale-only-responsive-layout',
495
555
  'template-shell-without-product-rationale',
@@ -511,6 +571,7 @@ function buildDesignIntentContractObject({
511
571
  requireStructuredDesignExecutionPolicy: true,
512
572
  requireStructuredDesignHandoff: true,
513
573
  requireVisualResetStrategyWhenZeroBasedRedesignRequested: true,
574
+ requireConceptualAnchorWhenNoExternalResearch: true,
514
575
  requireReviewRubric: true,
515
576
  requireGenericityExplanation: true,
516
577
  genericityAutoFail: true,
@@ -526,6 +587,7 @@ function buildDesignIntentContractObject({
526
587
  requireViewportMutationRules: true,
527
588
  requirePurposefulMotionGuidelines: true,
528
589
  requireRecognizableVisualBet: true,
590
+ requireConceptualAnchor: true,
529
591
  bootstrapPrompt: '.agent-context/prompts/bootstrap-design.md',
530
592
  autoLoadedRuleFiles: [
531
593
  '.agent-context/prompts/bootstrap-design.md',
@@ -560,6 +622,95 @@ export function validateDesignIntentContract(designIntentContract) {
560
622
  validationErrors.push('designIntent.designPhilosophy must be a non-empty string.');
561
623
  }
562
624
 
625
+ if (!designIntentContract.externalResearchIntake || typeof designIntentContract.externalResearchIntake !== 'object') {
626
+ validationErrors.push('designIntent.externalResearchIntake must exist.');
627
+ } else {
628
+ if (designIntentContract.externalResearchIntake.userSuppliedResearchPolicy !== 'read-as-candidate-evidence-not-final-prescription') {
629
+ validationErrors.push('designIntent.externalResearchIntake.userSuppliedResearchPolicy must preserve user research as candidate evidence.');
630
+ }
631
+ if (designIntentContract.externalResearchIntake.requireOfficialDocsVerificationForTechnologyClaims !== true) {
632
+ validationErrors.push('designIntent.externalResearchIntake.requireOfficialDocsVerificationForTechnologyClaims must equal true.');
633
+ }
634
+ if (
635
+ !Array.isArray(designIntentContract.externalResearchIntake.candidateDomains)
636
+ || !designIntentContract.externalResearchIntake.candidateDomains.includes('motion-and-scroll')
637
+ ) {
638
+ validationErrors.push('designIntent.externalResearchIntake.candidateDomains must include motion-and-scroll.');
639
+ }
640
+ }
641
+
642
+ if (!designIntentContract.conceptualAnchor || typeof designIntentContract.conceptualAnchor !== 'object') {
643
+ validationErrors.push('designIntent.conceptualAnchor must exist.');
644
+ } else {
645
+ const conceptualAnchor = designIntentContract.conceptualAnchor;
646
+ if (conceptualAnchor.mode !== 'required-when-no-external-research') {
647
+ validationErrors.push('designIntent.conceptualAnchor.mode must equal "required-when-no-external-research".');
648
+ }
649
+ if (conceptualAnchor.seedMode !== 'selection-policy-only') {
650
+ validationErrors.push('designIntent.conceptualAnchor.seedMode must equal "selection-policy-only".');
651
+ }
652
+ if (conceptualAnchor.requiresAgentSelectionBeforeUiImplementation !== true) {
653
+ validationErrors.push('designIntent.conceptualAnchor.requiresAgentSelectionBeforeUiImplementation must equal true.');
654
+ }
655
+ const candidateSelectionPolicy = conceptualAnchor.candidateSelectionPolicy;
656
+ if (!candidateSelectionPolicy || typeof candidateSelectionPolicy !== 'object') {
657
+ validationErrors.push('designIntent.conceptualAnchor.candidateSelectionPolicy must exist.');
658
+ } else {
659
+ if (candidateSelectionPolicy.considerAtLeast < 3) {
660
+ validationErrors.push('designIntent.conceptualAnchor.candidateSelectionPolicy.considerAtLeast must be at least 3.');
661
+ }
662
+ if (candidateSelectionPolicy.discardPredictableCandidates !== true) {
663
+ validationErrors.push('designIntent.conceptualAnchor.candidateSelectionPolicy.discardPredictableCandidates must equal true.');
664
+ }
665
+ if (candidateSelectionPolicy.doNotRevealHiddenCandidateList !== true) {
666
+ validationErrors.push('designIntent.conceptualAnchor.candidateSelectionPolicy.doNotRevealHiddenCandidateList must equal true.');
667
+ }
668
+ if (candidateSelectionPolicy.outputOnlyChosenAnchor !== true) {
669
+ validationErrors.push('designIntent.conceptualAnchor.candidateSelectionPolicy.outputOnlyChosenAnchor must equal true.');
670
+ }
671
+ }
672
+ if (
673
+ !Array.isArray(conceptualAnchor.forbiddenFinalAnchorTerms)
674
+ || !conceptualAnchor.forbiddenFinalAnchorTerms.includes('dashboard')
675
+ || !conceptualAnchor.forbiddenFinalAnchorTerms.includes('cards')
676
+ ) {
677
+ validationErrors.push('designIntent.conceptualAnchor.forbiddenFinalAnchorTerms must reject basic UI labels.');
678
+ }
679
+ if (
680
+ !Array.isArray(conceptualAnchor.sourceDomains)
681
+ || conceptualAnchor.sourceDomains.length < 4
682
+ || !conceptualAnchor.sourceDomains.includes('complex-physical-engineering')
683
+ ) {
684
+ validationErrors.push('designIntent.conceptualAnchor.sourceDomains must list broad non-template anchor domains.');
685
+ }
686
+ if (
687
+ !Array.isArray(conceptualAnchor.requiredDerivedAxes)
688
+ || !conceptualAnchor.requiredDerivedAxes.includes('typography')
689
+ || !conceptualAnchor.requiredDerivedAxes.includes('responsive-composition')
690
+ ) {
691
+ validationErrors.push('designIntent.conceptualAnchor.requiredDerivedAxes must include typography and responsive-composition.');
692
+ }
693
+ const finalAnchorContract = conceptualAnchor.finalAnchorContract;
694
+ if (!finalAnchorContract || typeof finalAnchorContract !== 'object') {
695
+ validationErrors.push('designIntent.conceptualAnchor.finalAnchorContract must exist.');
696
+ } else {
697
+ if (
698
+ !Array.isArray(finalAnchorContract.requiredFields)
699
+ || !finalAnchorContract.requiredFields.includes('derivedTokenLogic')
700
+ || !finalAnchorContract.requiredFields.includes('cohesionChecks')
701
+ ) {
702
+ validationErrors.push('designIntent.conceptualAnchor.finalAnchorContract.requiredFields must require derivedTokenLogic and cohesionChecks.');
703
+ }
704
+ if (
705
+ !Array.isArray(finalAnchorContract.derivedTokenLogicAxes)
706
+ || !finalAnchorContract.derivedTokenLogicAxes.includes('motion')
707
+ || !finalAnchorContract.derivedTokenLogicAxes.includes('morphology')
708
+ ) {
709
+ validationErrors.push('designIntent.conceptualAnchor.finalAnchorContract.derivedTokenLogicAxes must include motion and morphology.');
710
+ }
711
+ }
712
+ }
713
+
563
714
  if (!designIntentContract.mathSystems || typeof designIntentContract.mathSystems !== 'object') {
564
715
  validationErrors.push('designIntent.mathSystems must exist.');
565
716
  } else {
@@ -176,6 +176,7 @@ export function buildDesignBootstrapPrompt({
176
176
  '30. In zero-based redesign mode, the new contract must name the discarded prior visual DNA and materially reset composition, hierarchy, palette/typography, motion or interaction, and responsive information architecture.',
177
177
  '31. If modern UI, animation, scroll, 3D, canvas, chart, or icon libraries are useful, choose them from current official docs and record source URL, fetched date, reason, risk, and accessibility fallback.',
178
178
  '32. If the user supplies research files, library lists, screenshots, articles, or benchmark notes, read them as candidate evidence, summarize the useful signals, filter by project fit, and verify technology claims against current official docs before implementation.',
179
+ '33. If no external research or reference is supplied for UI work, choose one advanced conceptual anchor before coding. Consider multiple candidate anchors internally, discard predictable ones, output only the chosen anchor and rationale, and derive typography, spacing, morphology, motion, and responsive composition from that anchor.',
179
180
  '',
180
181
  '## Project Inputs',
181
182
  `- Project name: ${discoveryAnswers.projectName}`,
@@ -205,7 +206,8 @@ export function buildDesignBootstrapPrompt({
205
206
  '11. Ensure both files stay project-specific, dynamic, and practical for implementation and review. The seed may guide structure, but it must not decide style offline.',
206
207
  '12. Keep visualResetStrategy in the machine-readable handoff so reset-language tasks cannot quietly become restyles of the previous UI.',
207
208
  '13. Preserve externalResearchIntake so user-provided research becomes reviewed evidence without turning into an offline style or dependency preset.',
208
- '14. After the contract exists, use it as a first-class source for future UI tasks.',
209
+ '14. Preserve conceptualAnchor so prompt-only UI work has one cohesive non-template concept instead of a mixed collection of bold but unrelated visual decisions.',
210
+ '15. After the contract exists, use it as a first-class source for future UI tasks.',
209
211
  '',
210
212
  ].join('\n');
211
213
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ryuenn3123/agentic-senior-core",
3
- "version": "3.0.22",
3
+ "version": "3.0.23",
4
4
  "type": "module",
5
5
  "description": "Force your AI Agent to code like a Staff Engineer, not a Junior.",
6
6
  "bin": {