Repository navigation
fix(kit): adopted kits admit the host files design:os writes - #380
Merged
Merged
Conversation
ui init and ui agents init in an adopted kit project made ds kit verify fail with DS_TAMPERED (undeclared file). Kit integrity now lets an undeclared design:os host file coexist with the kit: ui init adapter trees for all runtimes, an AGENTS.md holding the ease-design sentinel, and .claude/agents/*.md carrying the design-os agent stamp. Declared content stays hash-bound; any other undeclared file still fails. ds guidelines reads the ontology glossary from design/knowledge/glossary.yaml when the root has none, and a root glossary added after adoption fails with an error naming that path. ui init --json now reports every file it writes (per-runtime wrapper plus a flat files list).
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.
Problem
In a project produced by
ui ds kit adopt, runningui initorui agents initmadeui ds kit verifyfail withDS_TAMPERED: kit integrity: Undeclared file: …: the integrity walk treated design:os's own adapter trees and agents as tampering. A glossary added atontology/glossary.yamlafter adoption hit the same wall, andui init --jsondid not report the model-adapter wrapper script it writes.Change
src/core/ds-kit-host-files.ts, used byindexKitContent): an undeclared host file design:os generates may coexist with the kit —ui inittrees for all runtimes (design:os-owned namespaces, so older/neweruiversions verify too),AGENTS.mdonly when it holds the ease-design sentinel block,.claude/agents/*.mdonly when it carries the design-os agent stamp. Declared kit content stays hash-bound (including host files a kit chose to declare); every other undeclared file still fails.ds guidelines build | checkreaddesign/knowledge/glossary.yaml(next to rulings) when the project root has noontology/glossary.yaml. A root glossary added after adoption still fails integrity, and the error now names the path to use.ui init --json: eachadapters[]entry carries itswrapper; a newfilesarray lists every file written (manifests, adapter tree, wrappers,--with-agentsagents).adapters[].pathsis unchanged.knowledge/ds-kit-onboarding.md§5 + failure mode,knowledge/design-agents.md§4. CHANGELOG entry.Verification
tests/ds-kit-host-files.test.ts(12 tests): adopted kit +init --all+agents init→ verify passes; editing a declared component still fails; five look-alikes (host setting, unstamped agent, sentinel-less AGENTS.md, off-namespace skill, stray source) still fail; glossary refusal names the path and thedesign/knowledgehome feeds guidelines build; emitter/linter pairing — every artifactgenerateAdapterandagents initemit passes the predicate;init --jsonfilesequals the files on disk.fileseach turns a test red.npm run typecheck && npm run lint && npm run build && npm test→ 365 files, 6381 passed, 12 skipped.ui init --runtime claude/--all→ds kit verifystaysverified.Not covered
CONTEXT.md/CONVENTIONS.mdadded at the root after adoption still fail integrity (nodesign/home yet)..claude/settings.local.jsoncreated by the host itself is still undeclared.🤖 Generated with Claude Code