Repository navigation
refactor(information-architecture): migrate mechanics to Python - #198
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Closes #180. Move information-architecture mechanics off Bash so setup and doctor can run through one contained Python + UV package on POSIX and native Windows.
What changed
ia-setupandia-doctorcommands, preserving inventory records, runtime selection, routing, reachability, adapters, deduplication, budgets, and refusal statuses, and UTF-8 path output.ia-writefor approved atomic guidance updates with expected-content checks, preserved newline/BOM conventions and permissions, and symlink-source handling.Verification
bun run check:python: passed across all registered packages; 104 target tests, 99.67% statement coverage, 98.44% branch coverage, strict mypy and Ruff.backend/tests/acceptance.mdmaps the retained coverage. The IA plugin contains no Bash tests or runtime launchers.uv run --quiet --frozen --no-dev --project plugins/foundation/darrow-information-architecture/backend python plugins/foundation/darrow-information-architecture/backend/tests/fresh_install.py: passed locally and in CI on Linux, macOS, and native Windows with a fresh independent plugin and runtime dependencies only.claude plugin validate plugins/foundation/darrow-information-architecture: passed.bun run lint,bun run lint:ts,bun run lint:shell,bun run typecheck,bun run check:decisions,bun run check:docs,bun run check:docs:external,bun run check:python:inventory, andscripts/test-python-quality-changes: passed.bun test: 620 passed, two failed. The recovery timeout passed in isolation; the remaining pre-existing discovery test expects a shell check that is now insemantic_output_checks(evals/runner/discovery-eval-checks.test.ts:104). Neither discovery file is changed here.gpt-5.6-terra, medium) and Claude (claude-sonnet-5, medium), one fresh passing trial per case/host with an 80% case threshold. The final procedure-routing guidance also passed a targeted Codex rerun. Earlier diagnostic failures and corrections are retained; these runs do not establish repeated-trial stability.aa2951c, together with all three fresh-install jobs. Documentation CI also passed.Review notes
The old Bash paths are removed; callers use the frozen package commands. The audit remains a compact structural check, not a complete Markdown or runtime-loader parser. Atomic replacement detects observed source changes but requires coordination with concurrent writers and is not a multi-file transaction.
The independent review's parent-relative resource and unselected-runtime encoding findings are fixed and covered by regressions. Eval calibration changes and the procedure-routing correction are recorded in
backend/tests/acceptance.md; full pre-migration live skill baselines are not claimed.Checklist
CONTRIBUTING.md, including the contributionlicensing terms.
this change does not affect a capability invariant.
behavior.
change does not affect plugin content.
bun run check:python, or this change does not affect registeredPython packages or their repository quality infrastructure.