tradeoff
Score the options at a decision fork on four cost axes — reversibility, blast radius, cost-if-wrong, process cost — with a provenance grade on every cell so a…
Skill by devseunggwan
Chalk Labs
Need help deploying tradeoff?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/devseunggwan-tradeoff
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/tradeoff
What's inside
- Skill name
tradeoff- Description
- Score the options at a decision fork on four cost axes — reversibility, blast radius, cost-if-wrong, process cost — with a provenance grade on every cell so a guess never reads as a measurement. Report-only: no totals, no ranking arithmetic, no external-surface writes.
- License
- MIT
- Instructions
- 190 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- files: referenced but missing: scripts/run-tests.sh
Files (1)
- SKILL.md
SKILL.md (first lines)
# Tradeoff ## Overview A decision fork produces two or more options, and the vocabulary for costing them already exists across this repo — `Scope-risk:` and `Confidence:` trailers, the `Blast Radius` clause, the SRP clause's "buys a review round, a merge ordering, a tracker entry, and a reviewer's context reload — each, every time". What is missing is a surface that puts them side by side at the moment of choosing. `Decision-Point Briefing` covers scope, risk and reversibility but fires only "when you stop to ask", so a fork the agent walks straight through is costed by nothing. This skill fills that gap and nothing else. It enumerates the options, scores each on four axes, and marks where every score came from. **Core principle:** a convention is not an option. When the lookup returns a precedent, that precedent is the answer and no table is built. ## When to Use - An implementation fork with two or more real candidates — a pair (hook vs skill, inline vs extracted) or a wider set (enforce in a hook / in a skill / in CI / in review only) - Deciding whether to act on a review finding, and whether it blocks Not for deciding whether a piece of work is worth starting — the Issue Review anchor's `Judgement` table (Need / Alternative / Urgency) owns that, and a second surface for it would only drift from the first. ## Process ### Step 1: Enumerate the options — three probes, then stop Take the options the user named, then run exactly these three probes. Three, then stop: this is the termination condition, not a search to be extended. 1. **Existing code** — does something already do this? `grep`, `Read`, a sibling implementation. 2. **Convention or precedent** — has a rule, a sibling skill, or a prior decision already settled this? Read `AGENTS.md`, `ETHOS.md`, the sibling `SKILL.md` files. 3. **Do nothing** — what happens if none of the options is taken? Add it to the option list; it is a real candidate, not a formality. **Probe 2 terminates the skill.** If it returns a precedent that covers the fork, print the precedent with its file and line, say which option it selects, and stop. Do not build a table. A rule is a trade-off the team already made, and re-scoring it here would be re-opening it — which `ETHOS.md` reserves to the team, not to the runtime. Reporting what the lookup returned is not re-opening it. ### Step 2: Score the four axes One ordinal value per cell — `low`, `moderate`, or `high`. Nothing else, and no numbers: a number invites addition, and an added column of self-authored values reads as a measurement. | Axis | The question | Where the vocabulary comes from | | ------ | -------------- | -------------------------------- | | Reversibility | If this is wrong, how expensive is undoing it? | "Irreversible or shared state — never proceed on your own" | | Blast radius | How far does a failure reach, including outside the system? | The `Blast Radius` clause; `Scope-risk:` trailer | | Cost-if-wrong | What is paid if the judgement turns out to be mistaken? | `Confidence:` trailer | | Process cost | Review rounds, merge ordering, reviewer context reload | The SRP clause | Score every option on every axis — one row per option, however many there are, with the do-nothing row always among them. **Do not narrow the set to a pair before scoring.** Dropping a candidate on the way to the table is a judgement made with no axis behind it, and it is invisible afterwards: the reader sees a two-row table and takes it for the whole fork. A candidate that does not survive belongs in the table with the cell that killed it, not outside it. The table's own cost is one row, so an option list is narrowed by its scores, never by anticipating them. `UNKNOWN` is for a cell you cannot call even directionally — not for a weak one. A cell you can call, but only from plausibility, still gets its value and is graded `assumed` in Step 3; that is what makes the weakness readable instead of hidden behind a blank. ### Step 3: Grade where each score came from Every cell carries one grade beside its value: | Grade | Means | Requirement | | ------- | ------- | ------------- | | `measured` | A command was run and its output decided this | Print the command beside the cell | | `estimated` | Inferred from a comparable case that was actually read | Name the case | | `assumed` | No basis beyond plausibility | Say so plainly | | `UNKNOWN` | Not callable even directionally | Leave the value empty | The grades exist to make the weak cells visible, not to make the table trustworthy. A table of `assumed` cells is a table of guesses that has been labelled honestly — it has not become evidence. ### Step 4: Report Print the table, then one line per option saying why it was chosen or dropped. - **No totals row.** No sum, no average, no weighted score, no ranking column. The axes are read side by side; they are not commensurable. - If the decision is worth keeping, propose a `Rejected: <option> | <reason>` commit trailer — but only when `measured` and `estimated` cells are the majority. A trailer carries no provenance grade, so an `assumed` judgement promoted to a trailer reads later as a decision with its weakest property stripped off. - Write the trailer nowhere yourself. Proposing it is the whole action. ## Error Handling | Error | Recovery | | ------- | ---------- | | Only one option after all three probes | Report that; there is no fork to cost | | Probe 2 returns a precedent | Print it and stop — no table (Step 1) | | Every cell on an axis is `UNKNOWN` | Report the axis as undecidable rather than dropping it; a hidden axis reads as a scored one | | The fork is about whether to follow a rule | Not a fork. Print the rule and stop | | More options than fit one readable table | Still score them all. Split the table by axis, never by dropping options — a table trimmed to fit hides the trim | ## Limitations
From devseunggwan/praxis, MIT.
More from devseunggwan/praxis
- 0.592score
stale-pr-revival
devseunggwan
Bring an open, stalled pull request back to a mergeable state without rewriting its history — read every review surface, merge the base in, integrate what…
SkillAFreshness: A★ 1Claude Code +9 - 0.588score
codex-review-wrap
devseunggwan
Worktree-aware wrapper for /codex:review.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
upstream-bug-report
devseunggwan
Take a defect in an installed third-party plugin, server, or library from local diagnosis to an issue on its public repository — prove the fix in a fresh…
SkillAFreshness: A★ 1Claude Code +9 - 0.585score
retrospect
devseunggwan
Session retrospect — analyze the current Claude Code session against the rules it ran under (project and global `CLAUDE.md`), identify friction patterns and…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
strike
devseunggwan
Declare a rule violation in the current Claude Code session.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
reset-strikes
devseunggwan
Reset the current session's strike counter to 0 and clear the recorded violation list.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
surface-enumeration
devseunggwan
Pre-implementation input-surface enumeration — before writing a parser/validator/sanitizer/classifier, enumerate every input variant so each becomes a…
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
strikes
devseunggwan
Show the current session's strike count (0-3) and the list of recorded violation reasons.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
perf-leak-review
devseunggwan
Point at performance-defect and memory-leak candidates in a diff — a read-only LLM reviewer reads the change plus the repository around it and reports…
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
worktree-merge-cleanup
devseunggwan
On-demand home for the pre-merge worktree precondition and the unified post-merge cleanup sequence — how to run `gh pr merge --squash --delete-branch` from…
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
merge-briefing
devseunggwan
On-demand home for the pre-merge approval procedure — the three-surface pre-ask probe, grading every open finding by its blocking decoration, carrying the…
SkillAFreshness: A★ 1Claude Code +9 - 0.579score
cmux-recover-sessions
devseunggwan
Bulk recover Claude Code sessions after a crash, power loss, OOM kill, or reboot by scanning the .jsonl files Claude Code persists automatically.
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 23, 2026 (8 days ago)
- Last release
- Oct 24, 2026 (7 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/devseunggwan/praxis
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from devseunggwan
- 0.592score
stale-pr-revival
devseunggwan
Bring an open, stalled pull request back to a mergeable state without rewriting its history — read every review surface, merge the base in, integrate what…
SkillAFreshness: A★ 1Claude Code +9 - 0.588score
codex-review-wrap
devseunggwan
Worktree-aware wrapper for /codex:review.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
upstream-bug-report
devseunggwan
Take a defect in an installed third-party plugin, server, or library from local diagnosis to an issue on its public repository — prove the fix in a fresh…
SkillAFreshness: A★ 1Claude Code +9 - 0.585score
retrospect
devseunggwan
Session retrospect — analyze the current Claude Code session against the rules it ran under (project and global `CLAUDE.md`), identify friction patterns and…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
reset-strikes
devseunggwan
Reset the current session's strike counter to 0 and clear the recorded violation list.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
strike
devseunggwan
Declare a rule violation in the current Claude Code session.
SkillAFreshness: A★ 1Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get tradeoff running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
tradeoff skill. Agent Mart. https://agentmart.dev/skills/devseunggwan-tradeoff (last updated 2026-10-24)