@adia-ai/adia-ui-forge 0.1.2
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/.claude-plugin/plugin.json +23 -0
- package/CHANGELOG.md +26 -0
- package/README.md +54 -0
- package/bin/forge-lint +263 -0
- package/bin/lib/audit-axes.mjs +555 -0
- package/bin/lib/dry-run-irreversible.mjs +236 -0
- package/bin/lib/run-skill-evals.mjs +487 -0
- package/bin/lib/teach-router.mjs +250 -0
- package/commands/adia-forge-a2ui.md +10 -0
- package/commands/adia-forge-author.md +10 -0
- package/commands/adia-forge-dogfood.md +8 -0
- package/commands/adia-forge-llm.md +8 -0
- package/commands/adia-forge-orient.md +10 -0
- package/commands/adia-forge-release.md +8 -0
- package/commands/adia-forge-review.md +10 -0
- package/hooks/hooks.json +15 -0
- package/package.json +41 -0
- package/references/shared/content-trust.md +76 -0
- package/references/shared/pev-rationale.md +64 -0
- package/references/shared/skill-conventions.md +133 -0
- package/skills/adia-ui-a2ui/CHANGELOG.md +32 -0
- package/skills/adia-ui-a2ui/SKILL.md +243 -0
- package/skills/adia-ui-a2ui/evals/adversarial-corpus.json +75 -0
- package/skills/adia-ui-a2ui/evals/routing-corpus.json +31 -0
- package/skills/adia-ui-a2ui/evals/teach-routing-cases.json +100 -0
- package/skills/adia-ui-a2ui/references/anti-patterns.md +24 -0
- package/skills/adia-ui-a2ui/references/chunk-authoring.md +88 -0
- package/skills/adia-ui-a2ui/references/corpus-discipline.md +56 -0
- package/skills/adia-ui-a2ui/references/eval-diagnostics.md +127 -0
- package/skills/adia-ui-a2ui/references/fragment-graph.md +91 -0
- package/skills/adia-ui-a2ui/references/mcp-pipeline-ops.md +106 -0
- package/skills/adia-ui-a2ui/references/mcp-tool-reference.md +398 -0
- package/skills/adia-ui-a2ui/references/pipeline-overview.md +175 -0
- package/skills/adia-ui-a2ui/references/semantic-fail-lifting.md +120 -0
- package/skills/adia-ui-a2ui/references/strategy-engines.md +111 -0
- package/skills/adia-ui-a2ui/references/teach-protocol.md +220 -0
- package/skills/adia-ui-a2ui/references/zettel-calibration.md +93 -0
- package/skills/adia-ui-a2ui/scripts/audit-a2ui-roster.mjs +96 -0
- package/skills/adia-ui-a2ui/scripts/teach-route.mjs +157 -0
- package/skills/adia-ui-a2ui/skill.json +38 -0
- package/skills/adia-ui-authoring/CHANGELOG.md +32 -0
- package/skills/adia-ui-authoring/SKILL.md +256 -0
- package/skills/adia-ui-authoring/assets/case-studies/admin-shell-decomposition.md +101 -0
- package/skills/adia-ui-authoring/assets/case-studies/maxtokens-32768-discovery.md +109 -0
- package/skills/adia-ui-authoring/assets/case-studies/theme-panel-promotion.md +113 -0
- package/skills/adia-ui-authoring/evals/adversarial-design-plan-gates.json +138 -0
- package/skills/adia-ui-authoring/evals/routing-corpus.json +245 -0
- package/skills/adia-ui-authoring/references/anti-patterns.md +606 -0
- package/skills/adia-ui-authoring/references/api-contract.md +205 -0
- package/skills/adia-ui-authoring/references/authoring-cycle.md +211 -0
- package/skills/adia-ui-authoring/references/canonical-pattern-index.md +179 -0
- package/skills/adia-ui-authoring/references/code-style.md +329 -0
- package/skills/adia-ui-authoring/references/common-gotchas.md +93 -0
- package/skills/adia-ui-authoring/references/composite-demo-protocol.md +1084 -0
- package/skills/adia-ui-authoring/references/css-patterns.md +364 -0
- package/skills/adia-ui-authoring/references/lifecycle-patterns.md +302 -0
- package/skills/adia-ui-authoring/references/llm-bridge.md +254 -0
- package/skills/adia-ui-authoring/references/module-promotion.md +289 -0
- package/skills/adia-ui-authoring/references/primitive-audit.md +123 -0
- package/skills/adia-ui-authoring/references/shell-patterns.md +561 -0
- package/skills/adia-ui-authoring/references/teach-protocol.md +428 -0
- package/skills/adia-ui-authoring/references/token-contract.md +120 -0
- package/skills/adia-ui-authoring/references/worked-example.md +351 -0
- package/skills/adia-ui-authoring/references/yaml-contract.md +224 -0
- package/skills/adia-ui-authoring/scripts/audit-authoring-roster.mjs +148 -0
- package/skills/adia-ui-authoring/scripts/build-canonical-pattern-index.mjs +199 -0
- package/skills/adia-ui-authoring/skill.json +45 -0
- package/skills/adia-ui-dogfood/CHANGELOG.md +17 -0
- package/skills/adia-ui-dogfood/README.md +62 -0
- package/skills/adia-ui-dogfood/SKILL.md +866 -0
- package/skills/adia-ui-dogfood/scripts/analyze.mjs +603 -0
- package/skills/adia-ui-dogfood/skill.json +40 -0
- package/skills/adia-ui-forge/SKILL.md +88 -0
- package/skills/adia-ui-forge/evals/routing-corpus.json +30 -0
- package/skills/adia-ui-gen-review/CHANGELOG.md +108 -0
- package/skills/adia-ui-gen-review/SKILL.md +266 -0
- package/skills/adia-ui-gen-review/references/loop-protocol.md +712 -0
- package/skills/adia-ui-gen-review/references/rubric-cosmetic.md +144 -0
- package/skills/adia-ui-gen-review/references/rubric-decompose.md +117 -0
- package/skills/adia-ui-gen-review/references/rubric-score.md +249 -0
- package/skills/adia-ui-gen-review/references/scores.schema.json +125 -0
- package/skills/adia-ui-gen-review/references/teach-protocol.md +214 -0
- package/skills/adia-ui-gen-review/scripts/gen-review-coverage-audit.mjs +127 -0
- package/skills/adia-ui-gen-review/scripts/gen-review-decompose.mjs +569 -0
- package/skills/adia-ui-gen-review/scripts/gen-review-status.mjs +176 -0
- package/skills/adia-ui-gen-review/scripts/validate-cycle-scores.mjs +198 -0
- package/skills/adia-ui-gen-review/skill.json +22 -0
- package/skills/adia-ui-llm/CHANGELOG.md +25 -0
- package/skills/adia-ui-llm/SKILL.md +165 -0
- package/skills/adia-ui-llm/evals/adversarial-corpus.json +75 -0
- package/skills/adia-ui-llm/evals/routing-corpus.json +30 -0
- package/skills/adia-ui-llm/evals/teach-routing-cases.json +73 -0
- package/skills/adia-ui-llm/references/adapter-contract.md +99 -0
- package/skills/adia-ui-llm/references/add-a-provider.md +90 -0
- package/skills/adia-ui-llm/references/bridge-facade.md +94 -0
- package/skills/adia-ui-llm/references/browser-proxy-boundary.md +89 -0
- package/skills/adia-ui-llm/references/model-registry.md +75 -0
- package/skills/adia-ui-llm/references/streaming-sse.md +95 -0
- package/skills/adia-ui-llm/references/teach-protocol.md +78 -0
- package/skills/adia-ui-llm/scripts/audit-llm-roster.mjs +93 -0
- package/skills/adia-ui-llm/scripts/teach-route.mjs +119 -0
- package/skills/adia-ui-llm/skill.json +33 -0
- package/skills/adia-ui-release/CHANGELOG.md +23 -0
- package/skills/adia-ui-release/SKILL.md +295 -0
- package/skills/adia-ui-release/assets/case-studies/2026-05-20-batch-push-v0.6.14-v0.6.15.md +144 -0
- package/skills/adia-ui-release/assets/case-studies/2026-05-20-corpus-drift-remediation-v0.6.15.md +155 -0
- package/skills/adia-ui-release/assets/case-studies/2026-05-20-version-skip-correction-v0.6.12.md +114 -0
- package/skills/adia-ui-release/assets/case-studies/2026-05-21-author-from-scratch-v0.6.18.md +139 -0
- package/skills/adia-ui-release/assets/case-studies/2026-05-21-feedback37-retraction-v0.6.21.md +124 -0
- package/skills/adia-ui-release/assets/case-studies/2026-05-21-fn1-enrichment-pass-v0.6.19.md +125 -0
- package/skills/adia-ui-release/assets/case-studies/2026-05-21-stale-test-detection-v0.6.20.md +142 -0
- package/skills/adia-ui-release/assets/case-studies/2026-05-23-freshness-gate-recovery-v0.6.32.md +97 -0
- package/skills/adia-ui-release/assets/case-studies/2026-05-26-catalog-drift-recurring-v0.6.40.md +147 -0
- package/skills/adia-ui-release/assets/templates/stub-changelog.template.md +22 -0
- package/skills/adia-ui-release/evals/evals.json +164 -0
- package/skills/adia-ui-release/references/changelog-discipline.md +250 -0
- package/skills/adia-ui-release/references/cycle-happy-path.md +520 -0
- package/skills/adia-ui-release/references/exe-deploy.md +149 -0
- package/skills/adia-ui-release/references/gates-catalog.md +778 -0
- package/skills/adia-ui-release/references/ledger-discipline.md +232 -0
- package/skills/adia-ui-release/references/migration-guide-authoring.md +174 -0
- package/skills/adia-ui-release/references/multi-agent-baseline.md +207 -0
- package/skills/adia-ui-release/references/notes-authoring.md +212 -0
- package/skills/adia-ui-release/references/recovery-paths.md +215 -0
- package/skills/adia-ui-release/references/rollup-notes.md +208 -0
- package/skills/adia-ui-release/references/teach-protocol.md +468 -0
- package/skills/adia-ui-release/scripts/assert-monorepo-root.mjs +49 -0
- package/skills/adia-ui-release/scripts/audit-gate-roster.mjs +196 -0
- package/skills/adia-ui-release/scripts/bump.mjs +118 -0
- package/skills/adia-ui-release/scripts/dispatch-publish.mjs +151 -0
- package/skills/adia-ui-release/scripts/insert-stub.mjs +127 -0
- package/skills/adia-ui-release/scripts/make-ledger.mjs +179 -0
- package/skills/adia-ui-release/scripts/promote-unreleased.mjs +88 -0
- package/skills/adia-ui-release/scripts/release-pack.mjs +350 -0
- package/skills/adia-ui-release/scripts/tag-lockstep.mjs +110 -0
- package/skills/adia-ui-release/skill.json +75 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// tag-lockstep.mjs — create 10 lockstep tags (umbrella vX.Y.Z + 9
|
|
3
|
+
// per-package <pkg>-vX.Y.Z) at HEAD or at a specified SHA.
|
|
4
|
+
//
|
|
5
|
+
// Usage:
|
|
6
|
+
// node tag-lockstep.mjs --version 0.6.22
|
|
7
|
+
// node tag-lockstep.mjs --version 0.6.22 --at <sha>
|
|
8
|
+
// node tag-lockstep.mjs --version 0.6.22 --delete # delete existing tags
|
|
9
|
+
// node tag-lockstep.mjs --version 0.6.22 --dry # print commands without running
|
|
10
|
+
//
|
|
11
|
+
// Phase 2 of the adia-ui-release skill. Mechanizes the tag loop used
|
|
12
|
+
// every cycle.
|
|
13
|
+
|
|
14
|
+
import { execSync } from 'node:child_process';
|
|
15
|
+
import process from 'node:process';
|
|
16
|
+
import { assertMonorepoRoot } from './assert-monorepo-root.mjs';
|
|
17
|
+
|
|
18
|
+
const PER_PACKAGE_NAMES = [
|
|
19
|
+
'web-components',
|
|
20
|
+
'web-modules',
|
|
21
|
+
'llm',
|
|
22
|
+
'a2ui-runtime',
|
|
23
|
+
'a2ui-compose',
|
|
24
|
+
'a2ui-corpus',
|
|
25
|
+
'a2ui-mcp',
|
|
26
|
+
'a2ui-retrieval',
|
|
27
|
+
'a2ui-validator',
|
|
28
|
+
];
|
|
29
|
+
|
|
30
|
+
function parseArgs(argv) {
|
|
31
|
+
const args = { version: null, at: null, deleteMode: false, dry: false, repo: process.cwd() };
|
|
32
|
+
for (let i = 0; i < argv.length; i++) {
|
|
33
|
+
const k = argv[i];
|
|
34
|
+
if (k === '--version') args.version = argv[++i];
|
|
35
|
+
else if (k === '--at') args.at = argv[++i];
|
|
36
|
+
else if (k === '--delete') args.deleteMode = true;
|
|
37
|
+
else if (k === '--dry') args.dry = true;
|
|
38
|
+
else if (k === '--repo') args.repo = argv[++i];
|
|
39
|
+
else if (k === '-h' || k === '--help') {
|
|
40
|
+
console.log('Usage: node tag-lockstep.mjs --version X.Y.Z [--at <sha>] [--delete] [--dry] [--repo <path>]');
|
|
41
|
+
process.exit(0);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (!args.version) {
|
|
45
|
+
console.error('error: --version is required');
|
|
46
|
+
process.exit(2);
|
|
47
|
+
}
|
|
48
|
+
return args;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function buildTagList(version) {
|
|
52
|
+
return ['v' + version, ...PER_PACKAGE_NAMES.map((p) => `${p}-v${version}`)];
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function run(cmd, repo, dry) {
|
|
56
|
+
if (dry) {
|
|
57
|
+
console.log(` [dry] ${cmd}`);
|
|
58
|
+
return '';
|
|
59
|
+
}
|
|
60
|
+
return execSync(cmd, { cwd: repo, encoding: 'utf8' });
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function main() {
|
|
64
|
+
const args = parseArgs(process.argv.slice(2));
|
|
65
|
+
// Fail-fast guard: refuse to run git against a non-monorepo directory.
|
|
66
|
+
assertMonorepoRoot(args.repo);
|
|
67
|
+
const tags = buildTagList(args.version);
|
|
68
|
+
|
|
69
|
+
if (args.deleteMode) {
|
|
70
|
+
console.log(`Deleting 10 tags for v${args.version}:`);
|
|
71
|
+
for (const t of tags) {
|
|
72
|
+
try {
|
|
73
|
+
run(`git tag -d ${t}`, args.repo, args.dry);
|
|
74
|
+
console.log(` ${args.dry ? '[dry] ' : ''}deleted ${t}`);
|
|
75
|
+
} catch (e) {
|
|
76
|
+
console.error(` WARN ${t} did not exist (no-op)`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
console.log(`\n[tag-lockstep] ${tags.length} tags deleted ${args.dry ? '(dry)' : ''}`);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const targetSha = args.at || run('git rev-parse HEAD', args.repo, false).trim();
|
|
84
|
+
console.log(`Creating 10 tags for v${args.version} at ${targetSha.slice(0, 9)}:`);
|
|
85
|
+
for (const t of tags) {
|
|
86
|
+
try {
|
|
87
|
+
run(`git tag ${t} ${args.at || ''}`.trim(), args.repo, args.dry);
|
|
88
|
+
console.log(` ${args.dry ? '[dry] ' : ''}created ${t}`);
|
|
89
|
+
} catch (e) {
|
|
90
|
+
console.error(` ERROR ${t}: ${e.message}`);
|
|
91
|
+
process.exit(3);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
console.log(`\n[tag-lockstep] ${tags.length} tags created at ${targetSha.slice(0, 9)} ${args.dry ? '(dry)' : ''}`);
|
|
95
|
+
|
|
96
|
+
if (!args.dry) {
|
|
97
|
+
console.log(`\n[next] run F-N1:`);
|
|
98
|
+
console.log(` node scripts/release/check-release.mjs --all-pending`);
|
|
99
|
+
console.log(`\n[next] when F-N1 is 9/9 clean, push:`);
|
|
100
|
+
console.log(` git push origin main`);
|
|
101
|
+
console.log(` git push origin ${tags.join(' \\\n ')}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
try {
|
|
106
|
+
main();
|
|
107
|
+
} catch (e) {
|
|
108
|
+
console.error(`error: ${e.message}`);
|
|
109
|
+
process.exit(1);
|
|
110
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "adia-ui-release",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Release engineer for an @adia-ai-style lockstep monorepo. Cuts, tags, publishes, deploys, authors release notes + audit-history ledgers — AND authors the MIGRATION GUIDE when a cut breaks an API (the producer side of migrations, folded in from the former adia-ui-migration skill). Use whenever the user wants to CUT A RELEASE / SHIP A VERSION / PUBLISH PACKAGES / BATCH-PUSH ACCUMULATED RELEASES / RECOVER FROM A VERSION-SKIP / WRITE RELEASE NOTES / PROMOTE [UNRELEASED] CHANGELOG / AUTHOR A MIGRATION GUIDE FOR A BREAKING CUT. Triggers on \"cut vX.Y.Z\", \"initiate a release\", \"publish the npm packages\", \"tag this commit and push the release\", \"batch push\", \"F-N1 warned\", \"GitHub release notes\", \"promote unreleased\", \"version skip recovery\", \"verify pre-flight gates\", \"the cycle just shipped — write up what happened\", \"author a migration guide / write the migration recipe for this breaking change\". VERIFICATION is load-bearing: every cut verifies against reality (npm registry + production endpoint + GH release), not self-checks. Carries the portable release DISCIPLINE with the @adia-ai monorepo's 9-package lockstep + demo-site deploy as the clearly-labeled worked example. Does NOT trigger for: the CONSUMER side of migration (sweeping a downstream app — the separate consumer/app-author plugin), long-running VM ops (provision/restart/key rotation), authoring new code, or generation-pipeline work.",
|
|
5
|
+
"status": "stable",
|
|
6
|
+
"authors": [
|
|
7
|
+
"kim.granlund"
|
|
8
|
+
],
|
|
9
|
+
"tags": [
|
|
10
|
+
"adia-ui",
|
|
11
|
+
"release",
|
|
12
|
+
"publish",
|
|
13
|
+
"lockstep",
|
|
14
|
+
"release-notes",
|
|
15
|
+
"migration-guide",
|
|
16
|
+
"producer-side"
|
|
17
|
+
],
|
|
18
|
+
"environment": {
|
|
19
|
+
"portable": false,
|
|
20
|
+
"requires": [
|
|
21
|
+
"an @adia-ai-style lockstep monorepo: @adia-ai/* packages under packages/* that version + publish together, with per-package CHANGELOG.md, a release trip-wire, and a publish-workflow per package"
|
|
22
|
+
],
|
|
23
|
+
"rationale": "The skill mutates a real monorepo (commits, tags, lockfiles) and triggers real package publishes; the gate roster, deploy target, and ledger paths are substrate-bound. The DISCIPLINE generalizes to any @adia-ai-style lockstep monorepo, but the worked example (9-package lockstep, ui-kit.exe.xyz deploy) is the @adia-ai monorepo specifically."
|
|
24
|
+
},
|
|
25
|
+
"files": [
|
|
26
|
+
"SKILL.md",
|
|
27
|
+
"skill.json",
|
|
28
|
+
"CHANGELOG.md",
|
|
29
|
+
"references/cycle-happy-path.md",
|
|
30
|
+
"references/multi-agent-baseline.md",
|
|
31
|
+
"references/gates-catalog.md",
|
|
32
|
+
"references/recovery-paths.md",
|
|
33
|
+
"references/changelog-discipline.md",
|
|
34
|
+
"references/notes-authoring.md",
|
|
35
|
+
"references/rollup-notes.md",
|
|
36
|
+
"references/exe-deploy.md",
|
|
37
|
+
"references/ledger-discipline.md",
|
|
38
|
+
"references/migration-guide-authoring.md",
|
|
39
|
+
"references/teach-protocol.md",
|
|
40
|
+
"scripts/bump.mjs",
|
|
41
|
+
"scripts/promote-unreleased.mjs",
|
|
42
|
+
"scripts/insert-stub.mjs",
|
|
43
|
+
"scripts/tag-lockstep.mjs",
|
|
44
|
+
"scripts/dispatch-publish.mjs",
|
|
45
|
+
"scripts/make-ledger.mjs",
|
|
46
|
+
"scripts/release-pack.mjs",
|
|
47
|
+
"scripts/audit-gate-roster.mjs",
|
|
48
|
+
"assets/templates/stub-changelog.template.md",
|
|
49
|
+
"assets/case-studies/2026-05-20-version-skip-correction-v0.6.12.md",
|
|
50
|
+
"assets/case-studies/2026-05-20-batch-push-v0.6.14-v0.6.15.md",
|
|
51
|
+
"assets/case-studies/2026-05-20-corpus-drift-remediation-v0.6.15.md",
|
|
52
|
+
"assets/case-studies/2026-05-21-author-from-scratch-v0.6.18.md",
|
|
53
|
+
"assets/case-studies/2026-05-21-fn1-enrichment-pass-v0.6.19.md",
|
|
54
|
+
"assets/case-studies/2026-05-21-stale-test-detection-v0.6.20.md",
|
|
55
|
+
"assets/case-studies/2026-05-21-feedback37-retraction-v0.6.21.md",
|
|
56
|
+
"assets/case-studies/2026-05-23-freshness-gate-recovery-v0.6.32.md",
|
|
57
|
+
"assets/case-studies/2026-05-26-catalog-drift-recurring-v0.6.40.md",
|
|
58
|
+
"evals/evals.json"
|
|
59
|
+
],
|
|
60
|
+
"peer_skills": [
|
|
61
|
+
"adia-ui-authoring",
|
|
62
|
+
"adia-ui-a2ui",
|
|
63
|
+
"adia-ui-dogfood",
|
|
64
|
+
"ops-postmortem"
|
|
65
|
+
],
|
|
66
|
+
"absorbs": [
|
|
67
|
+
"adia-ui-migration — DONE: producer side folded in as references/migration-guide-authoring.md + mode 11 (§MigrationGuideAuthoring). The consumer side stays in the separate consumer/app-author plugin.",
|
|
68
|
+
"release-publish / release-notes / verification-sweep — DONE in the source skill: consolidated into modes 1/3/4 (cut), 5/9 (notes), 6 (verify)."
|
|
69
|
+
],
|
|
70
|
+
"references": [
|
|
71
|
+
"adia-ui-a2ui — corpus-freshness checks route there for remediation (verify:corpus / embeddings drift)",
|
|
72
|
+
"adia-ui-dogfood — the static-HTML probes (native-primitive-leak, shell-composition) whose findings fold into release notes",
|
|
73
|
+
"ops-postmortem — incident genre during post-publish recovery (mode 7)"
|
|
74
|
+
]
|
|
75
|
+
}
|