Files
charleswiltgen__axiom/package.json
T
Charles Wiltgen 21990414b2 refactor(scripts): generate audit-area surfaces from one registry
scripts/audit-areas.json is now the single source for /axiom:audit
areas. Three surfaces are generated from it into marker-delimited
regions, leaving the surrounding hand-authored prose untouched:

  commands/audit.md   argument: list   (hash markers, inside frontmatter)
  commands/audit.md   body table       (model-facing "Detects" text)
  docs/commands/utility/audit.md       (human-facing prose)

The registry keeps `detects` and `docsDetects` as separate fields
rather than reconciling them. They differ for 22 of 32 areas because
one is routing text the model reads and the other is prose a person
reads — the docs-are-human / source-is-for-LLM split, not drift.

The sidebar is deliberately NOT generated: each of its groups
interleaves audit entries with unrelated commands (Build holds
audit-build beside fix-build, optimize-build, resolve-deps), so the
audit rows are not a spliceable region and generating the groups would
delete the others. It stays hand-maintained and is now checked directly
against the registry, which is what the old docs-vs-sidebar grouped
parity was approximating.

Retires validateParity and validateGroupedParity: with three surfaces
generated from one source they cannot disagree by construction, so the
set-parity and grouped-parity comparisons are replaced by one staleness
check — the same generate-and-diff pattern already used for the inlined
auditors (12d-bis) and the Codex variant (12f). validateRegistry gates
the source itself (duplicate areas, unknown groups, empty fields, a `|`
that would break a table cell, a docPath the sidebar parser could not
read the area back out of).

Also collapses the three arbitrary orderings that had accumulated
across the surfaces into one: group order, then alphabetical within
group. Row order in a for-LLM table carries no meaning, and docs and
sidebar already used exactly this order.

Verified no data was lost: every body-table row and every docs
description is byte-identical to the previous committed content
compared order-independently; only ordering changed. Mutation-tested by
adding an area to the registry alone — all three generated regions plus
the sidebar check reported it. 126 unit tests pass.
2026-07-25 11:09:25 -07:00

47 lines
1.6 KiB
JSON

{
"name": "axiom",
"version": "27.0.0-beta.33",
"description": "Battle-tested Claude Code skills, agents, and tools for modern xOS (iOS, iPadOS, tvOS, watchOS) development — Swift 6, SwiftUI, Liquid Glass, Apple Intelligence, and more",
"type": "module",
"pi": {
"skills": [
".claude-plugin/plugins/axiom/skills"
],
"extensions": [
"axiom-pi/src/index.ts"
]
},
"scripts": {
"build": "npm run build:audit-areas && npm run build:auditors && npm run build:codex && npm run build:mcp && npm run build:docs",
"build:audit-areas": "node scripts/build-audit-areas.ts",
"build:auditors": "node scripts/build-inlined-auditors.ts",
"build:codex": "node scripts/build-codex.ts",
"build:mcp": "cd axiom-mcp && pnpm run build:bundle",
"build:docs": "vitepress build docs",
"docs:build": "npm run build:docs",
"docs:dev": "vitepress dev docs",
"docs:preview": "vitepress preview docs",
"test": "node scripts/pre-deploy.ts --static",
"test:full": "node scripts/pre-deploy.ts",
"test:unit": "node --test scripts/*.test.ts",
"test:routing": "node scripts/test-routing.ts",
"check:refs": "node scripts/check-cross-refs.js",
"predeploy": "npm run test:unit && npm run build:mcp && node scripts/pre-deploy.ts"
},
"devDependencies": {
"gray-matter": "^4.0.3",
"mermaid": "^11.12.2",
"vitepress": "2.0.0-alpha.15",
"vitepress-plugin-mermaid": "^2.0.17"
},
"keywords": [
"claude-code",
"ios",
"xcode",
"plugins",
"development"
],
"author": "",
"license": "MIT"
}