@ryuenn3123/agentic-senior-core 3.0.9 → 3.0.10
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 +27 -12
- package/.agent-context/prompts/init-project.md +7 -0
- package/.agent-context/rules/frontend-architecture.md +1 -0
- package/.agent-context/state/memory-continuity-benchmark.json +1 -1
- package/.agent-context/state/ui-design-judge-report.json +25 -0
- package/.cursorrules +1 -1
- package/.gemini/instructions.md +1 -1
- package/.github/copilot-instructions.md +1 -1
- package/.windsurfrules +1 -1
- package/AGENTS.md +1 -1
- package/lib/cli/commands/init.mjs +4 -0
- package/lib/cli/commands/upgrade.mjs +4 -0
- package/lib/cli/compiler.mjs +15 -0
- package/lib/cli/detector.mjs +118 -2
- package/lib/cli/project-scaffolder.mjs +225 -30
- package/package.json +2 -1
- package/scripts/frontend-usability-audit.mjs +54 -0
- package/scripts/release-gate.mjs +33 -0
- package/scripts/ui-design-judge.mjs +626 -0
- package/scripts/validate.mjs +80 -0
package/scripts/validate.mjs
CHANGED
|
@@ -268,6 +268,61 @@ const REQUIRED_UPGRADE_UI_CONTRACT_WARNING_SNIPPETS = [
|
|
|
268
268
|
],
|
|
269
269
|
},
|
|
270
270
|
];
|
|
271
|
+
const REQUIRED_UI_DESIGN_AUTOMATION_SNIPPETS = [
|
|
272
|
+
{
|
|
273
|
+
path: '.instructions.md',
|
|
274
|
+
snippets: [
|
|
275
|
+
'UI Design Mode',
|
|
276
|
+
'bootstrap-design.md',
|
|
277
|
+
'frontend-architecture.md',
|
|
278
|
+
'do not eagerly load unrelated backend-only rules',
|
|
279
|
+
],
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
path: '.agent-context/prompts/bootstrap-design.md',
|
|
283
|
+
snippets: [
|
|
284
|
+
'UI Design Mode is context-isolated by default:',
|
|
285
|
+
'Responsive Strategy and Cross-Viewport Adaptation Matrix',
|
|
286
|
+
'`colorTruth.format`',
|
|
287
|
+
'`crossViewportAdaptation.mutationRules.mobile/tablet/desktop`',
|
|
288
|
+
],
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
path: 'scripts/ui-design-judge.mjs',
|
|
292
|
+
snippets: [
|
|
293
|
+
'Advisory-first UI design contract judge.',
|
|
294
|
+
'Default mode is advisory: findings never block release. Strict mode is opt-in.',
|
|
295
|
+
'Do not reward generic SaaS defaults or popular template patterns.',
|
|
296
|
+
'UI design judge only evaluates changed UI surfaces.',
|
|
297
|
+
],
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
path: 'lib/cli/project-scaffolder.mjs',
|
|
301
|
+
snippets: [
|
|
302
|
+
'colorTruth',
|
|
303
|
+
'crossViewportAdaptation',
|
|
304
|
+
'requireViewportMutationRules',
|
|
305
|
+
'allowHexDerivatives',
|
|
306
|
+
],
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
path: 'lib/cli/detector.mjs',
|
|
310
|
+
snippets: [
|
|
311
|
+
'hardcodedColorCount',
|
|
312
|
+
'propDrillingCandidateCount',
|
|
313
|
+
'arbitraryBreakpointCount',
|
|
314
|
+
'frontendEvidenceMetrics',
|
|
315
|
+
],
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
path: 'lib/cli/compiler.mjs',
|
|
319
|
+
snippets: [
|
|
320
|
+
'LAYER 5: EXECUTION PROMPTS AND UI TRIGGERS',
|
|
321
|
+
'bootstrap-design.md -> ui, ux, layout, screen, tailwind, frontend, redesign',
|
|
322
|
+
'Keep UI-only requests context-isolated',
|
|
323
|
+
],
|
|
324
|
+
},
|
|
325
|
+
];
|
|
271
326
|
const FORBIDDEN_TEMPLATE_BOOTSTRAP_SNIPPETS = [
|
|
272
327
|
{
|
|
273
328
|
path: 'lib/cli/project-scaffolder.mjs',
|
|
@@ -392,6 +447,7 @@ async function validateRequiredFiles() {
|
|
|
392
447
|
'scripts/governance-weekly-report.mjs',
|
|
393
448
|
'scripts/mcp-server.mjs',
|
|
394
449
|
'scripts/frontend-usability-audit.mjs',
|
|
450
|
+
'scripts/ui-design-judge.mjs',
|
|
395
451
|
'scripts/documentation-boundary-audit.mjs',
|
|
396
452
|
'scripts/context-triggered-audit.mjs',
|
|
397
453
|
'scripts/rules-guardian-audit.mjs',
|
|
@@ -490,6 +546,7 @@ async function validateRuleFiles() {
|
|
|
490
546
|
'review-checklists/pr-checklist.md',
|
|
491
547
|
'review-checklists/architecture-review.md',
|
|
492
548
|
'prompts/init-project.md',
|
|
549
|
+
'prompts/bootstrap-design.md',
|
|
493
550
|
'prompts/refactor.md',
|
|
494
551
|
'prompts/review-code.md',
|
|
495
552
|
'state/architecture-map.md',
|
|
@@ -1057,6 +1114,28 @@ async function validateUpgradeUiContractWarningCoverage() {
|
|
|
1057
1114
|
}
|
|
1058
1115
|
}
|
|
1059
1116
|
|
|
1117
|
+
async function validateUiDesignAutomationCoverage() {
|
|
1118
|
+
console.log('\nChecking UI design automation coverage...');
|
|
1119
|
+
|
|
1120
|
+
for (const coverageRule of REQUIRED_UI_DESIGN_AUTOMATION_SNIPPETS) {
|
|
1121
|
+
const absoluteCoveragePath = join(ROOT_DIR, coverageRule.path);
|
|
1122
|
+
|
|
1123
|
+
if (!(await fileExists(absoluteCoveragePath))) {
|
|
1124
|
+
fail(`Missing UI design automation source: ${coverageRule.path}`);
|
|
1125
|
+
continue;
|
|
1126
|
+
}
|
|
1127
|
+
|
|
1128
|
+
const coverageContent = await readTextFile(absoluteCoveragePath);
|
|
1129
|
+
for (const requiredSnippet of coverageRule.snippets) {
|
|
1130
|
+
if (coverageContent.includes(requiredSnippet)) {
|
|
1131
|
+
pass(`${coverageRule.path} includes UI design automation snippet: ${requiredSnippet}`);
|
|
1132
|
+
} else {
|
|
1133
|
+
fail(`${coverageRule.path} is missing UI design automation snippet: ${requiredSnippet}`);
|
|
1134
|
+
}
|
|
1135
|
+
}
|
|
1136
|
+
}
|
|
1137
|
+
}
|
|
1138
|
+
|
|
1060
1139
|
async function validateDeterministicBoundaryEnforcementCoverage() {
|
|
1061
1140
|
console.log('\nChecking deterministic boundary enforcement coverage...');
|
|
1062
1141
|
|
|
@@ -1326,6 +1405,7 @@ async function main() {
|
|
|
1326
1405
|
await validateUniversalSopConsolidationCoverage();
|
|
1327
1406
|
await validateTemplateFreeBootstrapCoverage();
|
|
1328
1407
|
await validateUpgradeUiContractWarningCoverage();
|
|
1408
|
+
await validateUiDesignAutomationCoverage();
|
|
1329
1409
|
await validateDeterministicBoundaryEnforcementCoverage();
|
|
1330
1410
|
await validateStackResearchSnapshotState();
|
|
1331
1411
|
await validateMcpConfiguration();
|