MCP Server Builder
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
Design architecture and break requirement into tasks. An agent skill from atelier-fashion/adlc-toolkit.
$ npx skills add atelier-fashion/adlc-toolkit --skill architect -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install atelier-fashion/adlc-toolkit architect --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/atelier-fashion/adlc-toolkit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/architect .claude/skills/architect && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "architect" agent skill from https://github.com/atelier-fashion/adlc-toolkit/tree/main/architect into .claude/skills/architect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "architect", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/atelier-fashion/adlc-toolkit/tree/main/architectType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add atelier-fashion/adlc-toolkit --skill architect -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install atelier-fashion/adlc-toolkit architect --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/atelier-fashion/adlc-toolkit.git skills-src && mkdir -p .agents/skills && cp -r skills-src/architect .agents/skills/architect && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "architect" agent skill from https://github.com/atelier-fashion/adlc-toolkit/tree/main/architect into .agents/skills/architect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "architect", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add atelier-fashion/adlc-toolkit --skill architect -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install atelier-fashion/adlc-toolkit architect --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/atelier-fashion/adlc-toolkit.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/architect .cursor/skills/architect && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "architect" agent skill from https://github.com/atelier-fashion/adlc-toolkit/tree/main/architect into .cursor/skills/architect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "architect", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/atelier-fashion/adlc-toolkit.git --path architect--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add atelier-fashion/adlc-toolkit --skill architect -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install atelier-fashion/adlc-toolkit architect --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/atelier-fashion/adlc-toolkit.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/architect .gemini/skills/architect && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "architect" agent skill from https://github.com/atelier-fashion/adlc-toolkit/tree/main/architect into .gemini/skills/architect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "architect", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install atelier-fashion/adlc-toolkit architectInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add atelier-fashion/adlc-toolkit --skill architect -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/atelier-fashion/adlc-toolkit.git skills-src && mkdir -p .github/skills && cp -r skills-src/architect .github/skills/architect && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "architect" agent skill from https://github.com/atelier-fashion/adlc-toolkit/tree/main/architect into .github/skills/architect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "architect", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add atelier-fashion/adlc-toolkit --skill architect -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install atelier-fashion/adlc-toolkit architect --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/atelier-fashion/adlc-toolkit.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/architect .opencode/skills/architect && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "architect" agent skill from https://github.com/atelier-fashion/adlc-toolkit/tree/main/architect into .opencode/skills/architect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "architect", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
architectDesign architecture and break requirement into tasks. An agent skill from atelier-fashion/adlc-toolkit.
Architect is an agent skill from atelier-fashion/adlc-toolkit. Design architecture and break requirement into tasks
Its SKILL.md is about 5.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows. The repository describes itself as: Shared SDLC skills and templates for Claude Code. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 3a48c27. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
kindFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Architect loads about 5.5k tokens when it runs. Until then it costs about 16 tokens; SKILL.md has 2,238 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from atelier-fashion/adlc-toolkit at commit 3a48c27, republished under its MIT licence (© atelier-fashion). 2,238 words, ~5,510 tokens.
.claude/skills/architect/SKILL.md (or your agent's skills folder).You are designing architecture and breaking a requirement into implementable tasks.
!test -s .adlc/ETHOS.md && cat .adlc/ETHOS.md || echo No ethos found — run /init to vendor .adlc/ETHOS.md
cat .adlc/templates/task-template.md || echo No task template found — run /init to vendor .adlc/templatesgrep -rl -e status:.draft -e status:.approved -e status:.in-progress --include requirement.md .adlc/specs || echo No active specsContext files loaded on demand: .adlc/context/architecture.md and .adlc/context/conventions.md are loaded by Step 1 below — skip the Read if they are already in the current conversation (e.g., when invoked from /proceed, which preloads them at Phase 0).
Requirement: $ARGUMENTS
Before proceeding, verify that .adlc/context/architecture.md and .adlc/context/conventions.md exist. If either is missing, stop and tell the user: "The .adlc/ structure hasn't been fully initialized. Run /init first to set up the project context."
.adlc/specs/REQ-xxx-*/requirement.md.adlc/specs/ for the matching requirementdraft or approved (not already complete).adlc/context/architecture.md and .adlc/context/conventions.md are NOT already in your conversation context (e.g., this skill is being run standalone, not from /proceed), Read them now. Otherwise skip — they're already loaded..adlc/knowledge/assumptions/ for prior decisions that may affect design.adlc/knowledge/lessons/ with patterns like component:.*<affected-area> or domain:.*<domain> to identify matching files. Then Read ONLY those matched files. Do NOT read all lessons. Note applicable lessons in your architecture rationale so past mistakes aren't repeated and proven patterns are reused.Launch 3 formal exploration agents in parallel using the Agent tool. Each agent is defined in ~/.claude/agents/ with model selection (haiku for fast exploration) and read-only tool restrictions.
Read the key files identified by agents
Retain the architecture-mapper affected-file list (the first column of its "Files to
Modify" + "Files to Create" tables, bare paths) as $MAPPER_PATHS — one path per line. This
is NOT the footprint source anymore (tasks are, per REQ-484); it is kept only as the BR-4
graceful-degradation fallback consumed by Step 5 when a task carries no file list.
Note (REQ-484): footprint publishing has moved to Step 5, which runs AFTER task creation. Per-repo attribution is derived from the task files'
repo:frontmatter, so the publish step MUST run once those files exist — not here during codebase exploration. The mapper output is retained (item 3) only as the BR-4 fallback.
.adlc/specs/REQ-xxx-*/architecture.md.adlc/context/architecture.md).adlc/context/architecture.md with rationale.adlc/specs/REQ-xxx-*/tasks/ directory.adlc/config.yml exists in the primary repo and declares a repos: block with more than one entry.repo: on each task to the primary repo id (or omit — /proceed will backfill). Files listed under "Files to Create/Modify" all live in the primary repo.repo: field naming one of the ids under repos:. Group files by repo — a single task should not modify files in multiple repos. If a piece of work spans repos (e.g., an API contract change requires matching backend and frontend edits), split it into at least two tasks with an explicit dependency between them.TASK-xxx-description.md for each task using the template from .adlc/templates/task-template.mddraft), parent REQ, created/updated dates, dependencies, repo: (required in cross-repo mode)Runs AFTER task creation (Step 4) and BEFORE the Step 5 footprint publish, which
reads the same task files. Numbered 4.5 rather than renumbering Steps 5–7, because
REQ-483 / REQ-484 architecture docs reference /architect Step 5 by number.
Write a ## Verification block into each task file created in Step 4, naming every
BR and AC that task discharges and the concrete artifact that proves each one. This
is the pre-commitment that makes an omitted rule visible at architecture time rather
than three phases later as a review finding — or never (LESSON-330: the Phase-5
panel's real catch is a numbered rule implemented as zero).
The block shape is defined in .adlc/templates/task-template.md (loaded in
## Context above) — a four-column table, rule | kind | artifact | benign_path.
Emit the columns in that order; /validate's coverage gate reads positionally.
1. Enumerate the rules. Read the parent REQ's ## Business Rules and
## Acceptance Criteria. BR-<n> uses the number as written. AC-<n> is the
1-based ordinal within the ## Acceptance Criteria list — the requirement
template does not print AC numbers, so ordinal position is the addressing.
If the REQ has zero numbered BRs, emit a one-line notice and skip obligation emission for BRs. Do not invent rules to map. An unnumbered legacy prose spec is not gate-able and is not made gate-able by fabricating ids.
2. Assign each rule to the task that discharges it. A rule may map to more than
one task; a task may discharge many rules. Every numbered BR and AC should land
somewhere across the task set — that is exactly what /validate reports on.
3. Resolve kind — surface first, stack for the artifact shape.
## Files to Create/Modify paths end in .md →
kind: structural-check. The artifact names the structural check(s) that
actually run over that surface (in this toolkit, tools/lint-skills checks).
Markdown skills have no test runner; a structural check is their real
verification mechanism, not a lesser substitute for one. No config read is
attempted on this branch — a repo without .adlc/config.yml resolves here
silently, with no error and no test-file path emitted..md path → kind: test-case. Resolve the artifact shape — which
runner, which path and case-name convention — from that task's repo
.adlc/config.yml stack: when the file exists and declares one; otherwise from
the test layout already present in that repo.kind is the closed two-value enum test-case | structural-check. dogfood is
deliberately excluded: it cannot report an executed-work count, which the
vacuous-run gate requires.
Never hardcode a framework name. Read the declared stack: values and use them
as written. Any runner name written as a literal into this skill is a name that is
wrong for the next project — the whole point of reading it from config is that the
skill does not know, and must not guess, which runner a consumer uses.
4. Cross-repo (BR-9). Resolution is per task, and a task's repo is its repo:
frontmatter — absent means the primary repo, matching the attribution Step 5
already applies to footprint paths. Each repo's stack: and test layout are read
from that repo, so obligations group per repo with per-repo artifact paths. Never
resolve a sibling's artifact path against the primary's layout.
5. Detector-shaped rules need a benign path (BR-4). Any rule describing
detection, refusal, or a halt must carry at least one obligation with
benign_path: yes — a case asserting the detector does not fire on the
legitimate actor. A detector validated only against adversarial inputs ships broken
and passes its own suite (LESSON-440). Match the rule text on case-insensitive
stems (detect, refus, halt, reject, block, flag), never \b word
anchors — BSD grep -E on macOS does not honor them and the check would silently
never fire (LESSON-013).
6. Validate every row before it is written — regardless of origin. This applies to rows you authored and to any drafted by a delegate; the contract is origin-agnostic on purpose, so it cannot be bypassed by changing who wrote the row:
rule matches ^(BR|AC)-[0-9]+$ and that ordinal exists in the parent REQ.
A row citing BR-99 on a REQ with 11 BRs is dropped.artifact — reject any value containing .., then charset-validate. Reuse the
same reject-then-validate pattern Step 5 applies to footprint paths rather than
inventing a second one (LESSON-008: a cited path is untrusted input, and a
traversal that merely fails to match must still be refused, not silently allowed).kind is one of the two enum values.Report every dropped row with the reason. A silently swallowed drop looks identical to a rule that was never mapped, which is the failure this step exists to make visible.
7. Write the block into each task file, above ## Technical Notes. A task with
genuinely nothing to declare may omit the section — it stays valid, and /validate
reports the gap as an advisory finding rather than blocking. Do not emit an empty
table.
Runs AFTER task creation so per-repo repo: attribution from the task files is available
(REQ-484 ADR-2 / OQ-1). Under /proceed, a draft PR already exists per touched repo (Step 0),
each recorded in pipeline-state.json repos[<id>].prNumber. Publish each repo's own
footprint into that repo's draft PR — one fenced adlc-footprint block per PR, each line
repo-qualified <repo-id>:<path-or-glob> (the schema /manifest parses; see
.adlc/specs/REQ-483-*/architecture.md and .adlc/specs/REQ-484-*/architecture.md). Idempotent
(replace any prior block). Skip with a one-line note if there is no draft PR (standalone
/architect, no /proceed).
Attribution (BR-1, BR-6, ADR-1). A repo's footprint is the union of
## Files to Create/Modify paths across tasks whose repo: frontmatter equals that repo id. A
task with no repo: field attributes to the primary repo (single-repo projects omit
repo:), so single-repo REQs derive from tasks via this same path — NOT via the BR-4
mapper-fallback. A path is attributed to a repo solely by its task's repo: tag — never
broadcast to all PRs, never inferred from the path string.
Iterate every PR (BR-2, BR-3). Loop over every touched repo's prNumber from
pipeline-state.json — do NOT use head -1. Each PR receives only its own repo's lines. In
single-repo mode the loop degenerates to one repo / one PR / one block, with no separate code
path and no "coarse" flag.
Sanitize on write (BR-5, LESSON-008). Every emitted line MUST pass the same validation the
read side applies — reject any line containing .., then charset-validate
^[A-Za-z0-9_.-]*:?[A-Za-z0-9_./*-]+$ — BEFORE it is written to any PR body.
Graceful degradation, never error (BR-4). A task with no file list, or a touched repo with
no tasks attributing files, falls back to the architecture-mapper paths attributed to the
primary repo, emitting a one-line source: mapper-fallback notice. A repo with genuinely
zero attributable files is skipped with a note — never publish an empty block silently.
# Forge adapter (REQ-520 BR-1): footprint publish reads/writes the PR body via
# pr_view/pr_edit, never direct gh. Sourced in THIS fence (shell state does not
# cross fences). GitHub backend forwards args verbatim, so the body read/write is
# byte-identical (BR-3).
if [ -f .adlc/partials/forge.sh ]; then . .adlc/partials/forge.sh; else . ~/.claude/skills/partials/forge.sh; fi
# Scope to THIS REQ's spec dir. $REQ is the REQ id (e.g. REQ-484) the skill is operating on.
# When $REQ is set, ONLY its own spec dir is consulted: a REQ with no pipeline-state.json is a
# standalone /architect run and skips here. It must NOT fall through to the any-REQ search below —
# that resolved a standalone REQ-611 run to REQ-544's state and would have published REQ-611's
# footprint into REQ-544's draft PR. The any-REQ fallback (the lone pipeline-state.json) is
# reached only when $REQ is unset.
# find, not ls globs: zsh errors on unmatched globs ("no matches found") instead of
# passing the pattern through, so a glob here breaks sh/bash/zsh parity.
state=""
if [ -n "$REQ" ]; then
state=$(find .adlc/specs -type f -path "*/${REQ}-*/pipeline-state.json" 2>/dev/null | sort | head -1)
[ -n "$state" ] || { echo "architect: no pipeline-state.json for $REQ — standalone run, skipping footprint publish"; exit 0; }
else
state=$(find .adlc/specs -type f -path "*/REQ-*/pipeline-state.json" 2>/dev/null | sort | head -1)
[ -n "$state" ] || { echo "architect: no pipeline-state.json — standalone run, skipping footprint publish"; exit 0; }
fi
specdir=$(dirname "$state") # THIS REQ's spec dir — task glob is scoped here, not all specs.
tick=$(printf '\140\140\140')
tab=$(printf '\t')
# Primary repo id (tasks with no repo: attribute here). The parse targets the pretty-printed
# pipeline-state.json that /proceed writes (one JSON field per line; each repo object spans
# multiple lines). It also tolerates one-repo-object-per-line layouts. A repo-id opening
# (`"<id>": {`) sets the current repo; "primary"/"prNumber" bind to it (matched on the same line
# too, so a repo whose object opens and closes on its own line still resolves). POSIX awk only —
# no 3-arg match(), no perl dependency.
primary=$(awk '
/"repos"[[:space:]]*:/ { inrepos=1 }
inrepos && /"[A-Za-z0-9_.-]+"[[:space:]]*:[[:space:]]*\{/ {
# take the key immediately before `: {` (the LAST quoted token before the brace), so a
# compact line like `{ "req":"R", "repos": { "solo": {` still yields `solo`, not `req`.
s=$(0); sub(/[[:space:]]*:[[:space:]]*\{.*/,"",s); sub(/"$/,"",s); sub(/.*"/,"",s)
if (s!="repos" && s!="") cur=s
}
inrepos && cur!="" && /"primary"[[:space:]]*:[[:space:]]*true/ { print cur; exit }
' "$state" 2>/dev/null)
# Touched repo ids that have a prNumber, one TSV line per repo: "<repo-id><TAB><prNumber>".
# Each prNumber stays bound to its owning repo id (NOT head -1). Same dual-format awk.
repos_prs=$(awk -v TAB="$tab" '
/"repos"[[:space:]]*:/ { inrepos=1 }
inrepos && /"[A-Za-z0-9_.-]+"[[:space:]]*:[[:space:]]*\{/ {
# take the key immediately before `: {` (the LAST quoted token before the brace), so a
# compact line like `{ "req":"R", "repos": { "solo": {` still yields `solo`, not `req`.
s=$(0); sub(/[[:space:]]*:[[:space:]]*\{.*/,"",s); sub(/"$/,"",s); sub(/.*"/,"",s)
if (s!="repos" && s!="") cur=s
}
inrepos && cur!="" && /"prNumber"[[:space:]]*:[[:space:]]*[0-9]+/ {
n=$(0); sub(/.*"prNumber"[[:space:]]*:[[:space:]]*/,"",n); sub(/[^0-9].*/,"",n);
if (n!="") { print cur TAB n; cur="" }
}
' "$state" 2>/dev/null)
[ -n "$repos_prs" ] || { echo "architect: no draft PR (no prNumber in state) — skipping footprint publish"; exit 0; }
printf '%s\n' "$repos_prs" | while IFS="$tab" read -r repo prnum; do
[ -n "$repo" ] && [ -n "$prnum" ] || continue
# Collect this repo's task-attributed file paths (first backtick token of each bullet under
# "## Files to Create/Modify"); a task with no repo: attributes to $primary.
lines=""
# while-read over find, not a for-glob: zsh errors on unmatched globs ("no matches
# found") instead of passing the pattern through. Heredoc (not a pipe) so $lines
# accumulated in the loop survives it.
while IFS= read -r tf; do
[ -f "$tf" ] || continue
trepo=$(sed -nE 's/^repo:[[:space:]]*([A-Za-z0-9_.-]+).*/\1/p' "$tf" | head -1)
[ -n "$trepo" ] || trepo="$primary"
[ "$trepo" = "$repo" ] || continue
paths=$(awk '/^## Files to Create\/Modify/{f=1;next} /^## /{f=0} f && /^- /{print}' "$tf" \
| sed -nE 's/^- *`([^`]+)`.*/\1/p')
[ -n "$paths" ] && lines=$(printf '%s\n%s\n' "$lines" "$paths")
done <<TASKS_EOF
$(find "$specdir"/tasks -name 'TASK-*.md' 2>/dev/null | sort)
TASKS_EOF
# Repo-qualify, sanitize (reject .. then charset-validate), dedupe.
safe=$(printf '%s\n' "$lines" | sed '/^$/d' \
| while IFS= read -r p; do printf '%s:%s\n' "$repo" "$p"; done \
| grep -vE '\.\.' | grep -E '^[A-Za-z0-9_.-]*:?[A-Za-z0-9_./*-]+$' | sort -u)
if [ -z "$safe" ]; then
# BR-4 fallback: architecture-mapper paths attributed to primary (only for the primary PR).
if [ "$repo" = "$primary" ] && [ -n "$MAPPER_PATHS" ]; then
safe=$(printf '%s\n' "$MAPPER_PATHS" | sed '/^$/d' \
| while IFS= read -r p; do printf '%s:%s\n' "$primary" "$p"; done \
| grep -vE '\.\.' | grep -E '^[A-Za-z0-9_.-]*:?[A-Za-z0-9_./*-]+$' | sort -u)
[ -n "$safe" ] && echo "architect: repo=$repo source: mapper-fallback (no task file list)"
fi
fi
if [ -z "$safe" ]; then
echo "architect: repo=$repo has zero attributable files — skipping (no empty block)"
continue
fi
tmp=$(mktemp "${TMPDIR:-/tmp}/footprint.XXXXXX") || continue
if base=$(adlc_forge_pr_view "$prnum" --json body -q .body 2>/dev/null); then
base=$(printf '%s\n' "$base" | sed "/^${tick}adlc-footprint/,/^${tick}/d")
{ printf '%s\n\n%sadlc-footprint\n' "$base" "$tick"; printf '%s\n' "$safe"; printf '%s\n' "$tick"; } > "$tmp"
adlc_forge_pr_edit "$prnum" --body-file "$tmp" >/dev/null 2>&1 && echo "architect: published footprint for repo=$repo to PR #$prnum"
fi
rm -f "$tmp"
done$MAPPER_PATHS holds the architecture-mapper affected-file list (bare paths, no repo column)
captured during Step 2 — used only for the BR-4 primary-repo fallback when a task carries no file
list. Other sessions read each block via adlc_forge_pr_view --json body (consumed by /manifest's
ordering verdict). The block is split-free (newline iteration, no unquoted word-splitting) so it
behaves identically under sh and zsh (LESSON-329), and uses mktemp + cleanup per PR.
<!-- retrieval-status: lifecycle-write -->
approved — the post-architecture REQ status written by step 1 below<!-- /retrieval-status -->
Declared for tools/lint-skills's retrieval-status-parity check: any status
this skill writes must remain retrievable by /spec Step 1.6 (BUG-194).
draft to approvedupdated date/validate before starting implementation## Verification block (Step 4.5) — an unmapped rule is the omitted-requirement
class LESSON-330 names, and it is far cheaper to catch here than at reviewbenign_path: yes obligationkind matches its task's surface, and no framework name is
hardcoded — the artifact shape comes from the repo's declared stack: or its
observed test layoutrepo: field naming a valid repo id from .adlc/config.yml, and all files in that task live in that repo© atelier-fashion, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in architect of atelier-fashion/adlc-toolkit.
Open the folder on GitHubat commit 3a48c27
Architect next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Architect this skillatelier-fashion/adlc-toolkit | 171 | — | ~5.5k | Automated safety check: Pass | MIT | |
| MCP Server Builderanthropics/skills | 180k | 63 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| Hook Development for Claude Code Pluginsanthropics/claude-plugins-official | 38k | 10 repos | ~4.1k | Automated safety check: Notes | Apache-2.0 | |
| Using Superpowersfarm-fe/farm | 5.6k | 36 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Executing Plans Inlineobra/superpowers | 297k | 2 repos | ~5.1k | Automated safety check: Pass | MIT | |
| Skill CreatorAzure/azqr | 796 | 89 repos | ~8.2k | Automated safety check: Pass | Apache-2.0 |
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
anthropics/claude-plugins-official
Explains how to write Claude Code plugin hooks, both prompt-based checks and bash commands, for events such as PreToolUse, Stop and SessionStart.
farm-fe/farm
A skill your agent uses when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions
obra/superpowers
Has the agent carry out an implementation plan itself, task by task in the current session, keeping a ledger, proving each step with a test and ending with one whole-branch review.
Azure/azqr
Create new skills, modify and improve existing skills, and measure skill performance.
anthropics/claude-plugins-official
Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.
atelier-fashion/adlc-toolkit
Canary deployment with smoke tests — deploy to a zero-traffic revision, run health checks, and promote on success.
atelier-fashion/adlc-toolkit
Parallel pipeline orchestrator — launch multiple /proceed sessions concurrently across REQs, monitor progress, and report status.
atelier-fashion/adlc-toolkit
Detect drift across ALL the sync surfaces /init vendors into a project — .adlc/templates/.md, .adlc/partials/.sh, .adlc/ETHOS.md, and the workflow runtime (.adlc/workflows/adlc-sprint.workflow.js +…
atelier-fashion/adlc-toolkit
End-to-end ADLC pipeline that takes a requirement from spec through to deployed.
atelier-fashion/adlc-toolkit
Bootstrap .adlc/ structure in a new repo or subdirectory. An agent skill from atelier-fashion/adlc-toolkit.
atelier-fashion/adlc-toolkit
Remote-derived view of all in-flight ADLC work — open PRs and pushed feat/REQ- branches across every session — with a coarse component/domain overlap report.
Categories
Design architecture and break requirement into tasks. An agent skill from atelier-fashion/adlc-toolkit. Architect is an agent skill from atelier-fashion/adlc-toolkit.
Architect fits situations like: agent Workflows work in your project.
Run `npx skills add atelier-fashion/adlc-toolkit --skill architect -a claude-code`. Or copy the skill folder (architect in atelier-fashion/adlc-toolkit) into .claude/skills/architect in your project. Claude Code loads it when a task matches its description.
Run `npx skills add atelier-fashion/adlc-toolkit --skill architect -a codex`. Or copy the skill folder (architect in atelier-fashion/adlc-toolkit) into .agents/skills/architect in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add atelier-fashion/adlc-toolkit --skill architect -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/architect, .gemini/skills/architect, .github/skills/architect and .opencode/skills/architect in your project.
Going by SKILL.md and its folder, Architect needs the command-line tools its instructions call (kind).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Architect is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.5k tokens (SKILL.md is roughly 22k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Architect: MCP Server Builder (anthropics/skills, 180k stars), Hook Development for Claude Code Plugins (anthropics/claude-plugins-official, 38k stars), Using Superpowers (farm-fe/farm, 5.6k stars) and Executing Plans Inline (obra/superpowers, 297k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
atelier-fashion (a GitHub organization) maintains it in atelier-fashion/adlc-toolkit, which has 171 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on September 28, 2026.
Source: atelier-fashion/adlc-toolkit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.