adopt
Skill4 starsChanged 46 days agoMITView on GitHub
Brownfield onboarding — detects the real stack of an existing project (Go/PHP/Node, Angular/Vue/Nuxt, GraphQL/REST, three.js, Kubernetes charts, OpenTelemetry/Prometheus), fills technical-preferences from the facts, audits existing artifacts against studio formats, merges settings/CLAUDE.md, and produces a numbered adoption plan. Run when installing the studio into an existing project.
27 other projects use a version of this.
Adopted by
Most recently taken up by
- maideps/ai-harness-frameworktheir own version, first seen Nov 8, 2026
- striderZA/OpenCodeGameStudiostheir own version, first seen Nov 4, 2026
- myowinthein/claude-helmtheir own version, first seen Nov 1, 2026
- dcbruck/claude-skillstheir own version, first seen Oct 20, 2026
- iadr-dev/greenlighttheir own version, first seen Oct 20, 2026
- HurricaHjz/SecondSelftheir own version, first seen Oct 20, 2026
Used with
Projects with it also use asset-spec, create-control-manifest and 7 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
lilangMaxSkillasset-spec
Generate per-asset visual specifications and AI generation prompts from GDDs, level docs, or character profiles. Produces structured spec files and updates the master asset manifest. Run after art bible and GDD/level design are approved, before production begins.
Also in 10 projects that use this
lilangMaxSkillcreate-control-manifest
After architecture is complete, produces a flat actionable rules sheet for programmers — what you must do, what you must never do, per system and per layer. Extracted from all Accepted ADRs, technical preferences, and engine reference docs. More immediately actionable than ADRs (which explain why).
Also in 10 projects that use this
- +7 more from lilangMax
Other versions27 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 27
- Donchitos/Claude-Code-Game-Studios★ 27ksame name
- HurricaHjz/SecondSelf★ 156same name
- striderZA/OpenCodeGameStudios★ 118same name
- HurricaHjz/second-yourself★ 105same name
- cenconq25/claude-code-app-studio★ 40same name
- mrveiss/AutoBot-AI★ 39same name
- dawn840705/codex-code-studios★ 17same name
- lilangMax/ClaudeCodeGameStudios★ 8same name
- hongyuanc/codex-game-studios★ 5same name
- codebycorey/delta-spec★ 4same name
17 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository52 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- testing/CLAUDE.mdCLAUDE.md
- a11y-auditSkill
- api-contractSkill
- architecture-decisionSkill
- architecture-reviewSkill
- backlogSkill
- brainstormSkill
- changelogSkill
- code-reviewSkill
- collaboration-protocolSkill
- create-storiesSkill
- data-modelSkill
- dependency-auditSkill
- deploySkill
- design-systemSkill
- dev-storySkill
- docsSkill
- feature-specSkill
- game-conceptSkill
- hardenSkill
- helpSkill
- hotfixSkill
- impactSkill
- incidentSkill
- initSkill
- migrateSkill
- pentestSkill
- perf-auditSkill
- product-specSkill
- qa-planSkill
- refactorSkill
- release-checklistSkill
- retrospectiveSkill
- security-auditSkill
- setup-stackSkill
- skill-improveSkill
- skill-testSkill
- sprint-planSkill
- sprint-statusSkill
- stack-updateSkill
- startSkill
- story-doneSkill
- team-featureSkill
- team-gameSkill
- team-releaseSkill
- team-securitySkill
- tech-debtSkill
- test-setupSkill
- threat-modelSkill
- updateSkill
- ux-specSkill
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 0 are distinctive, and 7 are very specific to this project.
0
Common
Most of the 25 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 31
Not a git repository (git rev-parse --show-toplevel fails) → one AskUserQuestion: initialize git now (Recommended) · stop.
- Very specific: line 39
Go projects: read references/detect-go.md.
- Very specific: line 40
PHP projects: read references/detect-php.md.
- Very specific: line 42
Fill
technical-preferences.mdin this run: read references/fill-technical-preferences.md (field list, deploy target/delegate detection by … - Very specific: line 43
Unknown fields: ask them (project type, API style, layout — whatever is still unknown) in one AskUserQuestion before the write gate, never …
- Very specific: line 45
Do not defer to
/setup-stack: after /adopt the stack counts as chosen — the template says "while [TO BE CONFIGURED] remains, skills treat … - Very specific: line 80
Before asking, <hooks>session-state.sh set Gate "/adopt Phase 5: commit?".
“Common” is measured: kept by at least 6 in 10 of the 25 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Adopt — attach the studio to an existing project
Language, <hooks>, agent and command namespaces, gate mechanics (rule 7), the documents-lane commit gate and the hand-off form: docs/coordination-rules.md § Skill conventions. This skill does not list Skill: every command it names is a hand-off (§ Another skill).
Answers not "what exists?" but "will what exists work with the studio's skills?".
Glossary:
FRAMEWORK_NAMESPACES— the regex alternativedocs/stack-reference/<framework>.mdnames for the detectedphp_framework(the valuedocs/templates/php/deptrac.yamltakes).
Mode → phases (argument; no argument = full). "Before Phase 1" runs in every mode.
| Mode | Phase 1 stack | Phase 2 artefacts | Phase 3 settings | Phase 4 plan | Phase 5 commit |
full | yes | yes | yes | yes | yes |
stack | yes | — | — | yes (stack findings only; the artefact audit is marked "not run — /adopt docs") | yes |
docs | — | yes | — | yes (artefact findings only; the facts table reads from the current technical-preferences.md) | yes |
settings | — | — | yes | — (only the settings diff; no plan file) | yes (for CLAUDE.md/roster only) |
A phase a mode skips is named as skipped in the result, never silently absent. In docs mode a placeholder technical-preferences.md yields the facts table "not run — /adopt stack" and makes /adopt stack the plan's first item.
Before Phase 1
.claude/docs/missing → oneAskUserQuestion: run/web-studio:init(copy mode/init) first (Recommended) · stop. Either answer ends this run.- Not a git repository (
git rev-parse --show-toplevelfails) → oneAskUserQuestion: initialize git now (Recommended) · stop.- "stop" →
BLOCKED (not a git repository — adoption relies on history and branches); never re-asked in the same run. - "initialize" → plain
git init, which honours the user'sinit.defaultBranch. Never pass-b/--initial-branch.
- "stop" →
Phase 1: Stack detection (stack / full)
Say "Scanning the project…", then:
- Read the manifests and configs:
go.mod(Go version, router, pgx/sqlc, gqlgen),composer.json(PHP,yiisoft/*, Symfony/Laravel, graphql-php),package.json(Angular/Vue/Nuxt/Vite versions, TS, three, pixi, GraphQL clients),angular.json,nuxt.config.*,vite.config.*,gqlgen.yml,*.graphql,*.graphqls,openapi*.yaml,compose*.yaml,Dockerfile*,.github/workflows/*,Chart.yaml,kustomization.yaml,deploy/k8s/**,charts/**(deploy targetkubernetes), the OpenTelemetry/Prometheus/logging packages in the manifests (references/fill-technical-preferences.md→ Observability),renovate.json/.github/dependabot.yml, existing deploy/advisor skills in.claude/skills. - Versions: compare with
.claude/docs/stack-reference/index.md. Outdated majors → a table "now → current → upgrade path (reference section)". - Go projects: read
references/detect-go.md; recordgo_layout,go_architecture(tree and dependency graph, never folder names alone),go_router,graphql_modelsand the findings it names. Restructuring is a plan item (/refactor layout), never done here. - PHP projects: read
references/detect-php.md; record the PHP version,php_framework,php_architecture(tree and dependency direction),php_static_analysis,php_cs_tool, deptrac presence and the findings it names. Moving tolayeredor another framework is a plan item (/refactor layout//refactor framework --dry-run), never done here. - Contract:
api_contract_pathfrom theschema:entry ofgqlgen.yml, or the OpenAPI file's real location; never from the studio default. - Fill
technical-preferences.mdin this run: readreferences/fill-technical-preferences.md(field list, deploy target/delegate detection bydeploy-target-contract.md, shared-host questions) and draft every field the files answer from the facts.[TO BE CONFIGURED]may remain only for fields no file answers. - Unknown fields: ask them (project type, API style, layout — whatever is still unknown) in one
AskUserQuestionbefore the write gate, never in the same message. - Write gate, in rule 7's exact order (§ Skill conventions → Gates): show the draft as a table field · value · source fact —
technical-preferences.mdis still the untouched init placeholder at this point — then "May I write.claude/docs/technical-preferences.md?" as oneAskUserQuestion: write (Recommended) · adjust first · not now.Write/Editonly after the "write" answer, never before. After the "write" answer:touch .claude/.write-consent. - Do not defer to
/setup-stack: after/adoptthe stack counts as chosen — the template says "while [TO BE CONFIGURED] remains, skills treat the stack as not chosen".
Phase 2: Artefact audit (docs / full)
| Artefact | Where | Format check |
| product spec | docs/specs/product-spec.md, README | template sections |
| feature specs | docs/specs/features/*.md | Given/When/Then criteria, "Security" section |
| ADRs | docs/architecture/adr-*.md, docs/adr/ | Status/Context/Options/Decision/Consequences |
| contract | docs/architecture/api/api-contract.md + the file at api_contract_path (api/schema.graphqls, schema.graphql, openapi*.yaml) | present, one copy, diff check in CI |
| threat model | docs/architecture/threat-model.md | STRIDE table |
| test strategy | docs/architecture/test-strategy.md | tools per level |
| roadmap/stories | production/roadmap.md, production/stories/ | checkbox format |
| CLAUDE.md | root | studio block (web-studio), Language section, @-includes |
- Classify: BLOCKING (a skill would fail or lie), HIGH (traceability lost), MEDIUM, INFO. A roadmap kept by a companion advisor skill in its own format is INFO ("not migrated"), never a migration item.
- Format gaps. A HIGH that is a format gap (a roadmap in a foreign format, story cards without a criteria table, ADRs without options) gets the plan item
/migrate <type> --dry-run, never "rewrite by hand"; the artefact itself is left untouched. - Every BLOCKING and HIGH gets a sink, not only a row in the plan: one
AskUserQuestionper item — record it inproduction/findings.md(templatefindings.md; idADOPT-NNN, severity, area, the decision needed) (Recommended) · story stubs now via/create-stories· plan only. The row is written only after the "record" answer. - "Story stubs" is a hand-off, not a call: the item becomes the plan's first open item with
/create-storiesas its command, offered first by the closing question./help,/create-storiesand/sprint-planreadproduction/findings.md; only/helpreads the adoption plan (first open item). - A BLOCKING or HIGH item that is neither recorded nor turned into a story is named as unrecorded in the verdict line.
Phase 3: Settings (settings / full)
.claude/settings.web-studio.jsonpresent → show a diff withsettings.jsonforhooks,permissions,statusLineand propose a merge: never drop foreign hooks; merge arrays.CLAUDE.mdwithout the studio block → propose inserting the Language/Studio/Stack/Principles sections from the kit'stemplates/CLAUDE.md.template(generated fromtechnical-preferences.mdwhen the template is unavailable); insert, never overwrite the existing file..gitignoremust listproduction/session-state/,production/session-logs/,.claude/settings.local.jsonand.claude/agent-memory-local/(the same four lines/initandinstall.shadd); propose the missing lines.- Companion skills detected (advisor, deploy) → propose noting them in the Tier 0 row of
.claude/docs/agent-roster.md. - Show the proposals, then one
AskUserQuestion: "May I write the changes above?" — write (Recommended) · show the draft/diff first · not now. After the "write" answer:touch .claude/.write-consent.
Phase 4: Adoption plan
- Draft
docs/adoption-plan-<date>.mdfrom.claude/docs/templates/adoption-plan.md: verdict, the facts table, the artefact audit and a numbered plan where every item is a checkbox- [ ] N. <priority> — <command> → <artefact>./helpoffers the first open item; items are ticked[x]when done. - Stage:
/initwritesproduction/stage.txtin its own write gate, so after a completed/initit exists; propose it from the facts (build/operate) only when it is missing, and only with the plan's consent, never automatically. - Write gate: show the plan in the chat, then "May I write
docs/adoption-plan-<date>.md(andproduction/stage.txt)?" as oneAskUserQuestion: write (Recommended) · show the draft/diff first · not now. After the "write" answer:touch .claude/.write-consent.
Phase 5: Commit (documents lane)
Right after the last write of the run, one commit gate (§ Skill conventions → Documents-lane commit gate; .claude/docs/git-workflow.md § Documents): docs: adopt web studio (<mode>), staging exactly the documents this run wrote — .claude/docs/technical-preferences.md, production/findings.md, CLAUDE.md, .claude/docs/agent-roster.md, docs/adoption-plan-<date>.md, production/stage.txt — whichever of them the earlier gates covered.
.claude/settings.jsonand.gitignore(Phase 3) are toolchain work, not documents: they never ride thedocs:commit; name them in the result and offer the chore lane (git-workflow.md § Chore / infra).- Before asking,
<hooks>session-state.sh set Gate "/adopt Phase 5: commit?"; after the answer,<hooks>session-state.sh set Gate "—".
Nothing is committed without the answer; a run that wrote no document has no commit gate.
Verdict: COMPLIANT | NEEDS MIGRATION (N blocking), followed by the unrecorded BLOCKING/HIGH items when there are any.
Next step — one AskUserQuestion. The plan so far reflects only the artefact gaps; nobody has asked the owner
what they actually want, and an owner who installs the studio on a working project always has an intent
(tidy it up, a new feature, security, an upgrade). Options:
- the plan's first open item (Recommended);
- "describe your goal for this project in your own words" (free text): reorder the plan around the answer, goal items first, and only then recommend a command;
/help;- stop here.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

