Tapd Iteration Runner
TencentBlueKing/bk-bcs
TAPD 迭代调度器——批量开发一个迭代中的全部需求。自动完成环境初始化、 需求依赖分析、逐需求调度 pipeline 实现、迭代汇总报告四段编排。
Replaces line-by-line code review with an approved executable spec and a gauntlet of tests, types, coverage, and mutation checks the code must survive.
$ npx skills add AmazingAng/old-coder --skill old-coder -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install AmazingAng/old-coder old-coder --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/AmazingAng/old-coder.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/old-coder .claude/skills/old-coder && 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 "old-coder" agent skill from https://github.com/AmazingAng/old-coder/tree/main/skills/old-coder into .claude/skills/old-coder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "old-coder", 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/AmazingAng/old-coder/tree/main/skills/old-coderType 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 AmazingAng/old-coder --skill old-coder -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install AmazingAng/old-coder old-coder --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AmazingAng/old-coder.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/old-coder .agents/skills/old-coder && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "old-coder" agent skill from https://github.com/AmazingAng/old-coder/tree/main/skills/old-coder into .agents/skills/old-coder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "old-coder", 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 AmazingAng/old-coder --skill old-coder -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install AmazingAng/old-coder old-coder --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AmazingAng/old-coder.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/old-coder .cursor/skills/old-coder && 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 "old-coder" agent skill from https://github.com/AmazingAng/old-coder/tree/main/skills/old-coder into .cursor/skills/old-coder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "old-coder", 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/AmazingAng/old-coder.git --path skills/old-coder--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 AmazingAng/old-coder --skill old-coder -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install AmazingAng/old-coder old-coder --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AmazingAng/old-coder.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/old-coder .gemini/skills/old-coder && 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 "old-coder" agent skill from https://github.com/AmazingAng/old-coder/tree/main/skills/old-coder into .gemini/skills/old-coder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "old-coder", 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 AmazingAng/old-coder old-coderInstalls 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 AmazingAng/old-coder --skill old-coder -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/AmazingAng/old-coder.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/old-coder .github/skills/old-coder && 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 "old-coder" agent skill from https://github.com/AmazingAng/old-coder/tree/main/skills/old-coder into .github/skills/old-coder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "old-coder", 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 AmazingAng/old-coder --skill old-coder -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install AmazingAng/old-coder old-coder --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AmazingAng/old-coder.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/old-coder .opencode/skills/old-coder && 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 "old-coder" agent skill from https://github.com/AmazingAng/old-coder/tree/main/skills/old-coder into .opencode/skills/old-coder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "old-coder", 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.
old-coderReplaces line-by-line code review with an approved executable spec and a gauntlet of tests, types, coverage, and mutation checks the code must survive.
This skill runs a SPEC to RED to GREEN to REFACTOR to GAUNTLET to EVIDENCE loop, where the human approves only the spec, not the code, and that spec must be written as executable acceptance criteria: concrete inputs, concrete expected outputs, edge cases, and explicit invariants the change must not break, never a vague behavior description.
It is explicit that the gauntlet turns the spec's constraints into executable evidence without proving the spec covers everything that matters, and that evidence reports layered, auditable confidence rather than absolute proof, so skipping a gauntlet step destroys the basis for that trust. When paired with a companion API-contract skill, this skill owns the workflow order and evidence while the other owns the HTTP/JSON contract, run together rather than as two parallel workflows.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit a0eb529. 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:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
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.
Evidence-First Development Loop loads about 5.4k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 138 tokens; SKILL.md has 3,205 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 noted patterns worth knowing about, such as sudo or a known installer.
tree's `.env` or build outputs is not evidence about the landing tree.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 AmazingAng/old-coder at commit a0eb529, republished under its MIT licence (© AmazingAng). 3,205 words, ~5,433 tokens.
.claude/skills/old-coder/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.The human will NOT read your implementation. Their confidence comes entirely from two artifacts you produce: (1) an executable specification they approve before you write code, and (2) an evidence report proving the code ran the gauntlet. Your job is to make those two artifacts trustworthy enough that line-by-line review becomes optional within the spec's boundaries.
This inverts the normal review model: trust moves from inspection to constraints. Be honest about what that buys: the gauntlet turns the constraints the spec expresses into executable evidence — it cannot show the spec expresses everything that matters, and it is not self-authenticating, because a checker can be unsound and a mapping can claim more than it demonstrates. That is exactly why the human approves the SPEC (the one artifact that breaks the everything-authored-by-the-same-agent correlation), and why EVIDENCE reports layered, auditable confidence, never absolute proof. Every shortcut you take against the gauntlet destroys the only basis of trust.
Composition with old-coder-api: when both skills apply, this skill owns
workflow order, SPEC approval, the gauntlet, and EVIDENCE; old-coder-api owns
the HTTP/JSON contract. Run its scope check and API gates while drafting SPEC,
turn the surviving constraints and risks into acceptance criteria and checks,
then map those checks into EVIDENCE. Do not run two parallel workflows.
SPEC → (human approves spec, not code) → RED → GREEN → REFACTOR → GAUNTLET → EVIDENCE
↑_____________________|
repeat per behaviorTurn the request into executable acceptance criteria before touching implementation files:
divide(1, 0) raises ZeroDivisionError with message X is.spec approval: not obtained (autonomous run) and claim
correspondingly lower confidence; the spec becomes the artifact the human
reviews after the fact.references/templates.md.git diff. Without a durable spec, a
compaction loses the approved contract while the code it authorized remains,
and nobody can check whether a scenario was quietly dropped from the EVIDENCE
mapping.Write the test for one behavior. Run it and watch it fail before writing the implementation. A test you never saw fail proves nothing — it may be testing nothing. Details that matter in practice:
NotImplementedError) so the test fails on behavior, not on import —
a collection error is a weaker RED than an assertion failure.Write the least code that makes the failing test pass. Run the full suite, not just the new test.
Minimal code is often ugly code. While the suite is green, improve names, extract duplication, and simplify structure. What is frozen is behavioral assertions, not test files wholesale:
Run the suite after each refactor. Repeat RED→GREEN→REFACTOR per behavior.
After all spec behaviors are green, run every applicable layer. Scale to the task (see "Calibration"), but never skip a layer silently — if a layer doesn't apply or a tool is unavailable, record that in the evidence report with the reason.
| Layer | What it catches | How |
|---|---|---|
| Full test suite | regressions | project's test command, zero NEW failures (baseline note below) |
| Static types | whole classes of bugs | tsc / mypy / etc., zero new errors |
| Lint + format | latent bugs, drift | project's linter, zero new warnings |
| Coverage on changed lines | untested code paths | every changed/added line executed by a test; branch coverage where the tool supports it. Global % is vanity — changed-line coverage is the constraint. This layer must exit nonzero when its threshold is missed (--cov-fail-under, diff-cover --fail-under, equivalent): a layer that prints a percentage and exits 0 is a report, not a gauntlet layer, and it will sit there green while coverage falls |
| Mutation testing | tests that assert nothing | prefer the project's mutation tool (mutmut, cosmic-ray, Stryker, PIT…), which generates mutants from the syntax tree and cannot silently skip one. No tool available? Manual mutation, per references/gauntlet.md — introduce 3–5 plausible bugs one at a time; the suite must kill every one; restore after. A hand-rolled runner must prove it executed each mutant: a runner that can report a kill it never ran inflates the score and no red gauntlet will ever surface it |
| Property-based tests | edge cases you didn't imagine | for parsing, math, serialization, anything with invariants (round-trip, idempotence, ordering) — add hypothesis/fast-check properties |
| Complexity budget | unmaintainable output | new functions small and single-purpose; if a function needs a paragraph to explain, split it |
| Real execution | "passes tests, doesn't run" | actually run the app/CLI/endpoint once on a realistic input, not only the test harness |
| Supply chain & secrets | vulnerable/unnecessary deps, leaked credentials | when the dependency set changed: audit it (pip-audit / npm audit / govulncheck / cargo-audit) and check licenses; scan the diff for secrets; every new dependency must trace back to its SPEC justification. Also eyeball the capability diff: did the change start using network / subprocess / filesystem / env it didn't before? |
| Suite health | flaky or order-dependent tests | run the suite in randomized order (pytest-randomly etc.); repeat suspected flakes. Every EVIDENCE number rests on the suite being deterministic — a flaky suite quietly invalidates the report |
Baseline note — on a repo with pre-existing failures, record the baseline first (which tests already fail, verbatim) and hold the line at zero NEW failures. Fixing unrelated pre-existing failures is scope creep: surface them, don't silently "improve" them.
Mutation caveat — kills are attributed to whichever test fails first, so a 7/7 kill score validates the suite as a whole, not every layer in it. In Tier 3, rerun the mutants against the property suite alone before claiming the properties verify anything; survivors there mean the invariants have blind spots (a common one: a one-sided invariant like "never exceeds limit" cannot catch fail-closed bugs — pair it with the opposite bound).
Checker note — the gauntlet is only as trustworthy as its checkers, and the
dangerous checker failure is fail-open: nothing crashes, the layer prints pass.
Off-the-shelf tools (pytest, mypy, tsc…) have earned their failure behavior;
home-grown checks — grep gates, custom scripts, the manual mutation runner —
have not, so two rules apply to them: (1) fail closed — a crash, an
unreadable input, an unexpected exit code, or an item silently skipped inside
gate code is a hard failure of the layer, never a pass; no || true, no
2>/dev/null, no bare fallthrough. (2) Prove it can fail before trusting
its pass: run it once against a known-bad input (a negative control) and
watch it fail — the RED principle applied to checkers, exactly like the
throwaway mutant for an immediately-passing test. Record the control in
EVIDENCE. Be precise about what that buys: a negative control proves one
known-bad case reaches the checker's failure path. It does not prove the
checker recognizes every violation of the constraint it claims to enforce.
A grep gate can fail closed perfectly and still guard a spelling rather than
a behavior. When the gate's coverage is narrower than the rule it serves, say
so where the rule is written, rather than letting the rule imply more.
Prove a negative control is itself non-vacuous the same way you prove a test: temporarily remove or break the defence it validates, and watch the control go red. A control that passes with the defence removed is measuring nothing — this is a one-time proof, not a permanent extra layer.
Equivalent-mutant note — with a mutation tool, a survivor is not automatically
a failure: some mutants are semantically equivalent to the original and cannot
be killed. Classify such survivors as "equivalent, because <reason>" in
EVIDENCE rather than adding a meaningless test to kill them — that would
violate anti-gaming rule 4. Hand-written mutants (the manual procedure) get no
such excuse: you chose them, so choose real bugs.
End with a report the human can trust without opening a single source file
(template in references/templates.md):
The gauntlet only creates trust if it cannot be gamed. These are hard rules:
Scale effort to blast radius, and say which tier you chose:
references/gauntlet.md). Mutation and
coverage cannot substitute for these; the generic gauntlet is the floor, not
the ceiling. Then: full loop + property-based tests + mutation testing
(tool-based if available) + adversarial pass — one explicit step trying to
break your own implementation with hostile inputs before declaring done.
Failure modes deliberately not covered go in EVIDENCE as known limits.
The adversarial pass is you attacking your own work and shares your blind
spots; where a spec gap would be expensive, consider independent
verification below — a different kind of assurance, not another layer.The gauntlet is evidence, not self-authentication: its checkers can be unsound, its mappings can overclaim, and the spec can be incomplete. Human spec approval mitigates only the last, by breaking author correlation, and only before code exists — it does not make a spec complete.
Independent verification answers the rest where the stakes justify it: a
fresh-context agent that attacks the finished work before EVIDENCE is signed.
It reduces task-context correlation, not model correlation. It is not a
gauntlet layer — a layer is an executable check with a machine-evaluable
result; this is an agent returning prose a human must judge, spending the one
resource this skill otherwise guards. Experimental: the evidence is one case study
(references/verifier-case-study.md — for deciding whether to run this, not
for the verifier to read), not a benchmark.
The protocol is references/verifier.md. Verification has not been performed
until that file has been read in full and executed; missing or unreadable →
blocked, never passed. What cannot be traded away:
not performed, whatever earlier rounds concluded. Fixing a behavioural
finding after the final permitted round therefore ships an unverified state:
record that as a declared downgrade and keep the earlier rounds as history.passed finalizes; failed and blocked do not;
not performed finalizes only as a declared downgrade, like an unapproved
spec. On Tier 3 it needs no apology — say so and claim less.Isolation — do not mutate the user's working tree to do your work. Declare the mechanism in the SPEC, with one line of why: a worktree, a branch, or none — the last only at Tier 1, where the blast radius is a typo. The human vetoes the mechanism at approval rather than discovering it afterwards.
The trap: a fresh worktree contains no gitignored content, so the gauntlet often cannot run there until dependencies are rebuilt. Two outcomes are acceptable — rebuild and run there, or fall back to a branch and record why. Never report green from a tree that never ran the suite.
Where the isolated tree and the tree the change lands in differ by ignored or
untracked content, say so in EVIDENCE: a green run in a tree missing the landing
tree's .env or build outputs is not evidence about the landing tree.
If the project has no test runner, no linter, or no type checking, set up the
minimal standard toolchain for the language first (see
references/gauntlet.md). A gauntlet can't run on bare ground. Setup changes
the user's environment — packages, config files, lockfiles — so it belongs in
the SPEC's setup plan, where spec approval authorizes it in one step; record
every environment change actually made in the evidence report. If the user
forbids adding tooling, fall back to manual layers (manual mutation, manual
execution) and record the reduced confidence honestly.
If the directory is not a git repository, propose git init in the SPEC's
setup plan. Version control is itself a gauntlet layer: commit at SPEC and at
each GREEN/REFACTOR checkpoint, so mutant restores are verifiable with
git diff (not by eyeball), a bad refactor is rolled back instead of debugged,
and the final diff shows exactly what changed. Checkpoint commits happen only
under that spec-approved authorization (or an explicit user request) — never
impose a commit cadence on a repo whose owner hasn't agreed to it. If the user
declines or git is unavailable, record that in EVIDENCE — mutant restores then
rest on rerunning the suite, a weaker guarantee — and identify the source state
with a tree hash instead of a SHA.
© AmazingAng, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (references) in skills/old-coder of AmazingAng/old-coder.
Open the folder on GitHubat commit a0eb529
Evidence-First Development Loop 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 |
|---|---|---|---|---|---|---|
| Evidence-First Development Loop this skillAmazingAng/old-coder | 749 | — | ~5.4k | Automated safety check: Notes | MIT | |
| Tapd Iteration RunnerTencentBlueKing/bk-bcs | 840 | — | ~2.5k | Automated safety check: Pass | Custom licence | |
| Tapd Story ImplementTencentBlueKing/bk-bcs | 840 | — | ~1.2k | Automated safety check: Pass | Custom licence | |
| Map TDDazalio/map-framework | 157 | — | ~6k | Automated safety check: Pass | MIT | |
| SPARC Development Methodologyruvnet/ruflo | 74k | 2 repos | ~829 | Automated safety check: Pass | MIT | |
| Tbdjlevy/strif | 131 | — | ~3.5k | Automated safety check: Pass | MIT |
TencentBlueKing/bk-bcs
TAPD 迭代调度器——批量开发一个迭代中的全部需求。自动完成环境初始化、 需求依赖分析、逐需求调度 pipeline 实现、迭代汇总报告四段编排。
TencentBlueKing/bk-bcs
迭代执行流水线代码实现阶段。基于 tasks.md 调用 /speckit.implement 以 TDD 模式完成全部任务。
azalio/map-framework
TDD MAP workflow: write tests from the spec FIRST, then implement, so tests validate intent not implementation.
ruvnet/ruflo
Applies the SPARC method (specification, pseudocode, architecture, refinement, completion) with 17 specialized modes and multi-agent orchestration, from research to deployment.
jlevy/strif
Git-native issue tracking (beads), coding guidelines, knowledge injection, and spec-driven planning for AI agents.
rtk-ai/rtk
Enforces red-green-refactor for Rust work, with idiomatic test patterns, a naming convention and a pre-commit gate of cargo fmt, clippy and test.
AmazingAng/old-coder
Reviews or designs an HTTP/JSON API's endpoints, auth, pagination, versioning and deprecations, guarding against inventing a bespoke interface or silently breaking consumers.
Categories
Replaces line-by-line code review with an approved executable spec and a gauntlet of tests, types, coverage, and mutation checks the code must survive. This skill runs a SPEC to RED to GREEN to REFACTOR to GAUNTLET to EVIDENCE loop, where the human approves only the spec, not the code, and that spec must be written as executable acceptance criteria: concrete inputs, concrete expected outputs, edge cases, and explicit invariants the change must not break, never a vague behavior description.
Evidence-First Development Loop fits situations like: doing high-assurance work in money, auth, or concurrency code the user won't read line by line; writing an executable spec before implementing a feature; proving a change ran a full gauntlet of tests, types, and mutation checks.
Run `npx skills add AmazingAng/old-coder --skill old-coder -a claude-code`. Or copy the skill folder (skills/old-coder in AmazingAng/old-coder) into .claude/skills/old-coder in your project. Claude Code loads it when a task matches its description.
Run `npx skills add AmazingAng/old-coder --skill old-coder -a codex`. Or copy the skill folder (skills/old-coder in AmazingAng/old-coder) into .agents/skills/old-coder 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 AmazingAng/old-coder --skill old-coder -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/old-coder, .gemini/skills/old-coder, .github/skills/old-coder and .opencode/skills/old-coder in your project.
Going by SKILL.md and its folder, Evidence-First Development Loop needs the command-line tools its instructions call (git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Evidence-First Development Loop 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.4k 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. Its references folder adds about 7.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Evidence-First Development Loop: Tapd Iteration Runner (TencentBlueKing/bk-bcs, 840 stars), Tapd Story Implement (TencentBlueKing/bk-bcs, 840 stars), Map TDD (azalio/map-framework, 157 stars) and SPARC Development Methodology (ruvnet/ruflo, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
AmazingAng (a GitHub user) maintains it in AmazingAng/old-coder, which has 749 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on August 18, 2026.
Source: AmazingAng/old-coder on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.