Skip to content

slim: remove everything that is not natively Ashlar's responsibility - #446

Merged
IanFrelinger merged 3 commits into
masterfrom
claude/native-slim
Sep 1, 2026
Merged

slim: remove everything that is not natively Ashlar's responsibility#446
IanFrelinger merged 3 commits into
masterfrom
claude/native-slim

Conversation

@IanFrelinger

Copy link
Copy Markdown
Owner

Executes the owner's directive: audit all the pieces, keep what natively belongs to Ashlar's responsibilities, remove what doesn't.

How it was decided

A 6-agent parallel audit (src / application+consumer-template / products / commercial+deploy / CI+scripts+solutions / docs+handoff) classified every piece with dependency evidence and removal-impact notes. Full manifest in the commit message.

What leaves (712 files, −44k lines) — all preserved on archive/verticals-2026-08-31

  • applications/ product layer — physical-atom certification, provenance graph (the Neo4j product; kernel provenance primitives stay), six spatial/AR projects + tests/samples/tools/gates/docs
  • The game vertical — nine commercial/ GameDirector/GameDomain projects, ForgeMapHostSample, apps/game-director, apps/ashlar-forge, game data, compose files, engine-bridge/forge docs, _handoff/game-layer
  • The Unity vertical inside the CLIashlar unity-dev + handlers + constraint records + tests + registration
  • Orphans/residuesrc/Ashlar.API stub, ValidationUtilities, stale session docs

What stays, on purpose

Fleet.*/MeshDirector (Ashlar's own commercial scale tier is native, not a vertical) · apps/release-manager + apps/runtime-studio (scheduled extractions as the portfolio's repos #1–2; the open setup lane seeds from them) · ingress adapters/SMS/terraform (generic cloud-ingress seam) · sample bricks · business docs · readiness archives.

Tracked, not removed (new follow-up in OpenCoreBoundary.md): game/spatial vocabulary still compiled into core (Core.Application/Environments/**, ModelBackedMaterialIntelligenceService, QuestPdfWorkflowExporter, /api/director naming) — directory-level slim now, in-project surgery with the vertical's extraction.

Licensing note: Tier 3 is now empty in-repo and the evaluation-grant scope shrinks to commercial/. Nothing open moved behind a paywall — covenant 2 untouched; the vertical's commercial status travels with it to the archive branch.

Validation

cert-gate 391/391 · dependency-boundary PASS · full Ashlar.sln0 errors · Fleet.Host + FirstFlight spike build · Tests.BackgroundAgents 526/526 · Tests.CLI 188/189, the single failure being UnitTestBridge(BackgroundAgentCommandTests) which reproduces identically on untouched master in the same container — the documented environmental flake, not a regression.

[coordinated-integration]

🤖 Generated with Claude Code

IanFrelingerand others added 3 commits August 31, 2026 18:39
UnityDevCommand ships 9 subcommands (init/generate/iterate/list/assets/
qa/fullstack/pin/compose) and a full test suite, but was never added to
the root tree in Program.CommandRegistration.cs, so `ashlar unity-dev`
(and the `unity-dev generate` hint it prints) were unreachable from the
CLI. This is the same "built but never registered" failure as `trust`
in #162; RootCommandRegistrationTests did not cover unity-dev, so nothing
caught it.
Register the command with the same SelfExtendRunnerAdapter factory as
SelfExtendCommand, and add RootCommand_RegistersUnityDevCommand asserting
the verb and all 9 subcommands stay registered so it cannot silently drop
again.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
A six-area audit classified every piece of the tree against the runtime's
native responsibilities (kernel + trust surfaces; runtime/SDK/hosting;
CLI/API/MCP/transport surfaces; federation + the commercial fleet-governance
tier; distribution for the above). Everything else was a vertical riding
along, and it leaves — preserved intact on archive/verticals-2026-08-31 for
extraction to its own repositories.
Removed (712 files, -44k lines):
- the applications/ product layer: physical-atom certification, provenance
graph (as a product; kernel provenance primitives stay), six spatial/AR
projects, their tests, samples, demo tool, compose file, gate workflow,
coverage-ratchet script, and docs (8 physical-atom phase docs, spatial doc)
- the game vertical: nine commercial GameDirector/GameDomain projects,
ForgeMapHostSample, apps/game-director, apps/ashlar-forge, game data
(balance/maps), game compose + Dockerfile, engine-bridge/forge/aesthetic/
portal docs, smoke scripts, _handoff/game-layer (48 non-compiling files)
- the Unity dev vertical inside the CLI: `ashlar unity-dev`, nine handlers,
twelve constraint records, ~1,300 lines of tests, its registration, global
using, guard test, and the unity rows in the multi-platform test matrix
- orphans and residue: src/Ashlar.API stub, ValidationUtilities (zero
consumers), tag-scan sample objective (subject was the removed product),
extract-game-layer.sh (its target left), docs/planning, docs/cleanup,
docs/bricks/unknown.md, stale RESUME-PROMPT
Kept deliberately: Fleet.*/MeshDirector (Ashlar's own commercial scale tier —
native), apps/release-manager + apps/runtime-studio (scheduled extractions;
the open setup lane still seeds from them), cloud ingress adapters + SMS
middleware + terraform (generic ingress seam), Bricks.Owasp/SqlProfile
(authoring exemplars), business/GTM docs, readiness archives.
Coupled edits: Ashlar.sln (-19 projects), PrimeTime.slnf, Makefile,
ci/test-ownership.tsv, dependency-boundary/security-gate path filters,
readiness-gate-local applications layer, tier-d GameDomain block,
LICENSING.md (Tier 3 now empty in-repo; grant scope shrinks to commercial/;
not a licensing event - covenant 2 untouched), ProjectTiers, OpenCoreBoundary
(+ tracked follow-up for game/spatial vocabulary still compiled into core),
DocsIndex, README, certification-evidence. Severed a stale GameDirector.Mcp
reference in Fleet.Host in passing.
Validation: cert-gate 391/391; dependency-boundary PASS; full Ashlar.sln
builds 0 errors; Fleet.Host + FirstFlight build; Tests.BackgroundAgents
526/526; Tests.CLI 188/189 where the single failure
(UnitTestBridge/BackgroundAgentCommandTests) reproduces identically on
untouched master in the same container - pre-existing environmental flake.
[coordinated-integration]
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@IanFrelinger
IanFrelinger merged commit e413898 into masterSep 1, 2026
16 of 21 checks passed
@IanFrelinger
IanFrelinger deleted the claude/native-slim branch September 1, 2026 00:25
IanFrelinger added a commit that referenced this pull request Sep 1, 2026
Post-merge cleanup for #446, all mechanical:
- application-gate-tier-d.sh: remove the orphaned fragment my GameDomain-block
excision left behind (bash -n now passes across all scripts)
- README: drop the stale apps/ashlar-forge row (lychee dead link) and the
PrimeTime row's GameDomain mention (uat tier-8 doc-paths-exist)
- CONTRIBUTING: PrimeTime filter is seven open assemblies now
- docs/handoff/HANDOFF.md: the extract-game-layer invocations are annotated as
archived (uat tier-8 doc-scripts-exist greps invocation forms; the script
left with _handoff/game-layer)
uat tier8 re-run locally: 4/4 PASS. No production wiring changed in the slim
or here - removal-only.
[skip-prod-style] removal-only change set: no production-wiring behavior
changed; cert-gate 391/391 and full-solution build already prove the tree.
[coordinated-integration]
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
IanFrelinger added a commit that referenced this pull request Sep 1, 2026
…#448)
A 7-area doc-vs-source audit (420 evidence lookups) before the first
nuget.org release. ~45 verified findings fixed; the notable ones:
BROKEN follow-alongs: TesterQuickstart/GettingStarted cloned Nexo.git then
`cd Ashlar` (fails); README showed `pkg share <id>` where the CLI requires
`pkg share --id <id>`; samples/README's cp command pointed at the removed
tag-scan objective; the Swagger promise 404s outside Development (now says
how to enable it).
WRONG facts: GHCR images are nexo-cli/nexo-api, not ashlar-cli/ashlar-api
(7 docs); the client header is X-Ashlar-Api-Key, not X-Api-Key (sdk.md + a
stale code comment); SECURITY.md claimed no tagged release exists (v0.1.0
does); DistributionModels' publication status ignored the artifact-only
v0.1.0 run; PUBLISHING understated the CI-packed set (Client/Sdk/Authoring
are unconditional); SELF-EXTEND-AUDIT invariant B rewritten to the
origin-keyed semantics the validator actually has (Authored roots skip;
machine-origin REQUIRES ParentId); SelfHostedAgentServer pulled the wrong
model (shipped agent set uses qwen2.5:7b); /ready exists (versioning.md
denied it); api/index gained the ~12 live routes it was missing;
kernel-coverage runs -f net10.0 not net9.0; GET /api/knowledge/query IS
wrapped (QueryKnowledgeAsync).
POST-SLIM residue: LICENSING's ValidationUtilities row, ProjectTiers'
ForgeMapHostSample row + PrimeTime-spans-commercial claim (LICENSING echoed
it), README's project counts (62 not 78; 3 commercial not 9) and layout-tree
comments, CommercialExtractionPlan status, FleetGovernanceInventory's
discover/advertise verbs (the command is `lan`) and resolved test rows,
OpenCoreBoundary's boundary summary (85 scanned, 8 commercial), the dead
APPLICATION_GATE_GAMEDOMAIN flag, CiGateInventory/workflows-README counts
(56 files, five schedules, 17 dispatch-only; uat-gate and portability-gate
added — uat-gate runs unfiltered on every PR and was documented nowhere),
mesh-lab-gate marked dormant, MiddlewareIngress catalog list, DEPLOYMENT's
nexo-api service name (compose service is ashlar-api), and the enumeration
sentence #446's line-delete mangled in the autonomy-objectives README.
Two audit claims were REFUTED before fixing: the runtime-studio anchor
"#how-runtime-studio-fits-with-ashlar-api" is alive (explicit <a id> at
README line 11 — two auditors missed it), so those links stand.
Validation: uat tier8 4/4 PASS locally; Ashlar.Client builds; the only code
change is one XML doc comment.
[skip-prod-style] docs-only plus one XML comment; no production wiring
changed.
[coordinated-integration]
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@IanFrelinger