Repository navigation
docs(agents): drop the vendored Aspire skills and record the account rule - #1298
Merged
github-actions[bot] merged 1 commit intoOct 15, 2026
Conversation
…rule Finishes item 4 of #763. Deletes the five stale vendored Aspire skills that no wrapper loads and repoints the run procedure at the Aspire CLI help and MCP docs tools; a new test requires every .agents skill to have a .claude wrapper. The built multi-account design becomes proposed local ADR 0031 and the orphan .claude/design folder goes. Decision taken without asking: delete the skills rather than wrap them, and keep the design's reasons as an ADR rather than deleting them; the alternatives are named in the pull request. Refs #763 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Closes #763
Summary
Finishes item 4, the last open part of #763 (items 1–3 are on main as 0db704f). 4a: deletes the five vendored Aspire skills under
.agents/skills/aspire*(4,002 lines fromaspire agent initon 2026-08-05, pinned to Aspire 13.4 while the repository is on 13.6.1, linking files that do not exist, loaded by no wrapper) and repointsrun-backlog/SKILL.mdataspire <command> --helpand the Aspire MCP docs tools. A newAgentContextPointerTestsfact requires every.agents/skillsentry to have a.claude/skillswrapper naming its path. 4b: the multi-account design doc was built in PR #493, so what it decided — per-call account resolution, never storing aghtoken, the rejected alternatives (gh auth switch,GH_TOKENinjection, droppingGhCliTransport) — becomes proposed local ADR 0031, and.claude/design/is deleted.tech/ai-development.mdandtechnology-graph.mddrop their Aspire-skills mentions. No file undersrc/changes.Decision taken without asking (follow it, or ask for the alternative)
Question. Item 4: should the five vendored Aspire skills under .agents/skills/aspire* be wrapped or deleted, and should .claude/design/multi-account-settings.md move into .devbook/arc42/ or be deleted?
Chosen. 4a: delete all five vendored Aspire skills, the whole 4002-line set, and repoint run-backlog/SKILL.md:28 to
aspire --helpand the Aspire MCP docs tools. Add an AgentContextPointerTests fact that every .agents/skills entry has a .claude/skills wrapper. 4b: write what the design doc decided into a new local ADR 0031 (status: proposed, built in PR #493), list it in adr/README.md and 09-architecture-decisions.md, and delete the design doc and the .claude/design/ folder.Alternative. 4a: keep the five skills and give each a .claude/skills/aspire*/SKILL.md wrapper and a .github/skills wrapper. Name them in context-loading.md and CLAUDE.md as vendored output of
aspire agent init, never hand-edited, and refresh them by re-running it. 4b: delete the design doc outright with no ADR, relying on git history, ADR 0021 and tech/desktop.md#github-cli.Why the choice. The vendored set is the same kind of stale pointer this issue exists to remove. It is pinned to Aspire 13.4 while Directory.Packages.props is on 13.6.1. It links to
aspireifyand three reference files that are not in the repository. No commit has touched it sinceaspire agent initon 2026-08-05. No flow or wrapper loads it. The Aspire MCP server is bound in .mcp.json, and csharp-coding:aspire in the stack covers the same CLI guidance against the live version. Wrapping it would put five long descriptions into every session's skill list. It would also commit the repository to keeping 4000 lines of third-party text current. The repository-specific rules (--isolated, never trust the exit code, scoped stop) already live in run-backlog/SKILL.md. For the design doc: it was still amended on 2026-10-13 to record a security-relevant reversal, the borrowed gh token. It holds rejected alternatives that no devbook chapter holds:gh auth switch, GH_TOKEN injection, and dropping GhCliTransport. Deleting it outright would lose the reasons a future change needs, and keeping it in .claude/ leaves an unaddressed orphan that still says 'ready to implement'. Under devbook-arc42.md a decision lives in arc42/adr/, so a short ADR is the home for it. ADR 0021 and tech/desktop.md already hold the sync and mechanism halves, so the new ADR records only the rest.To follow the alternative instead. For 4a, the alternative restores .agents/skills/aspire* with
git revertoraspire agent init. It adds five .claude/skills and five .github/skills wrappers, reverts the run-backlog line and the two tech chapter edits, and changes the new test from 'none unwrapped' to 'all five wrapped and named in context-loading.md'. For 4b, it drops ADR 0031 and its two index entries and keeps only the deletion of .claude/design/.Acceptance criteria
skills/aspireor 'Aspire skills'; run-backlog namesaspire <command> --helpand the Aspire MCP docs tools — test: AgentContextPointerTests.No_context_file_or_devbook_chapter_names_a_retired_pointer("skills/aspire" and "Aspire skills") and AgentContextPointerTests.The_run_procedure_points_at_the_aspire_cli_help_and_the_mcp_docs_toolsTesting
cd "D:/iswp/763-vendored-skills-and-design-doc" && dotnet build Backlog.WithoutAppHeads.slnf --configuration Release -p:TreatWarningsAsErrors=true && dotnet test --solution Backlog.WithoutAppHeads.slnf --no-build --configuration Release --max-parallel-test-modules 1 --parallel none --results-directory <scratchpad>/tr763 ; plus node .devbook/_tools/devbook-meta/build.mjs --check ; node tools/devbook/check-metadata.mjs ; node tools/devbook/build-database.mjs --checkbuild.mjs --check;check-metadata.mjs: 0 blocking).Review
repos/,orgs/andusers/takes the default account, butGitHubSettings.ChoiceForSearchroutes asearch/call by itsq=qualifier (repo:as that repository,org:/user:as the owner's shared binding). The flowchart and §1 now record that rule.orch-contextorpr-jsdotnetback into a .devbook chapter or a .github instruction file. The older theory scans only the agent context files, so nothing catches it, whilemulti-account-settingsin the same place does fail. The next person to retire a pointer also has to pick one of two homes with different coverage.What could not be proved
GitHubSettings.AccountForPath; no test checks what an ADR records. It isproposedalthough PR Read Claude and GitHub usage from several accounts #493 already built it — accepting it is yours.aspire agent initwould re-vendor them; the new wrapper fact then fails until each gets a wrapper, which is the intended guard.Merge Danger
Door. Two-way: a revert restores the skills and the design doc. No code, data or setting changes.
Blast radius. local — agent context (the
run-backlogprocedure and the skill list) and the arc42 decision records.Assumptions taken instead of asking
find -type fshows no files in them. They go with the folder.multi-account-settingsin any devbook chapter, so the ADR calls it 'an implementation design document' and points to PR Read Claude and GitHub usage from several accounts #493 and git history.Opened as a draft by an attended run of
delivery-schedule:schedule-issue-sweep(2026-10-15), told by the owner to decide without asking and to name the choice and the alternative.🤖 Generated with Claude Code