claim-scope
Name the LAYER a claim lives at (working tree / repository / deployed / live behavior) and check that your instrument can reach it, before stating any fact…
Skill by tyroneross
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/tyroneross-claim-scope
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
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/claim-scope
What's inside
- Skill name
claim-scope- Description
- Name the LAYER a claim lives at (working tree / repository / deployed / live behavior) and check that your instrument can reach it, before stating any fact about a system. Triggers on assertion words (is / never / only / verified / cannot) and on 'does X exist', 'did X ship'. Not for grading evidence STRENGTH ([measured]/[correlated]/[reasoned]) — that is report_lint's mechanism-claim rule, which this extends with reach. A grep proves what is in one checkout; it can say nothing about what is running. Verify right-to-left: start at observed behavior, walk back toward source.
- License
- Apache-2.0
- Instructions
- 179 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (1)
- SKILL.md
SKILL.md (first lines)
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
# Claim Scope
**The defect this prevents:** an agent runs a correct check, then states a
conclusion the check could not support, with full confidence and no hedge. The
check is not wrong. The *reach* of the check is wrong, and nothing in the
sentence records the difference.
Observed 2026-09-04. An agent grepped `@vercel/blob` in a local checkout of
a private app repo, found nothing, and reported: *"there is no blob path; the audio
lives only in Postgres; switching source is not possible."* The grep was
accurate. The checkout sat on a branch whose last commit was a day old, while
`origin/main` carried a merged blob migration that was **already deployed to
production**. The agent had reported a property of one working tree as a
property of the running system. Existing lint passed it clean, because the
sentence named its instrument (`grep`) and the mechanism-claim rule accepts
`grep` as an observation.
**Naming your instrument is not enough. The instrument must be able to see the
thing you are claiming.**
---
## The four layers
Every claim about a software system lives at exactly one of these. Decide which
one BEFORE writing the sentence.
| Layer | The claim is about | Nothing below it can prove this |
|---|---|---|
| **L1 · working tree** | this branch, this directory, right now | — |
| **L2 · repository** | origin, every branch, every worktree | L1 sees one branch of many |
| **L3 · deployed** | what is built and shipped and serving | L2 sees intent, not what shipped |
| **L4 · live behavior** | what it does when a person touches it | L3 sees the artifact, not its behavior |
The layers are a ladder, not a menu. **A claim at layer N requires an instrument
that reaches layer N.** Reaching higher is free and always valid; reaching lower
is the defect.
## Instrument reach — the lookup
Do not reason about this. Look it up.
| Instrument | Reaches | Blind to |
|---|---|---|
| `grep`, `cat`, `sed`, Read, Glob, reading a file | **L1** | other branches, other worktrees, what shipped, what it does |
| `git log`, `git status`, `git diff` (no fetch) | **L1** | anything not yet fetched |
| `git fetch --all` + `git log HEAD..origin/<branch>` | **L2** | whether it built or shipped |
| `git worktree list`, `git branch -a`, `gh pr list` | **L2** | same |
| `vercel ls` / `vercel inspect`, `gh run list`, deploy sha, build log | **L3** | runtime behavior under a real request |
| `curl -D-`, a real HTTP request, a screenshot, `ibr scan`, an AX probe, a live DB query | **L4** | nothing — this is the ground |
Two instruments that look similar and are not: `git log` reports what you have
fetched; `git log HEAD..origin/main` after a fetch reports what exists. The
first is L1. The second is L2.
## Procedure
Run this whenever a claim is about to be stated, not only when you doubt it.
Doubt is the thing that fails first.
**1. Write the claim as a sentence.** Then read it back and answer: *which layer
is this a claim about?* If the sentence contains "is deployed", "is running",
"is broken", "does not exist anywhere", "nothing does X" — it is L3 or L4, no
matter what you looked at.
**2. Look up the reach of every instrument you actually ran.** Not the ones you
could have run. The ones in your transcript.
**3. Compare.** If `max(instrument reach) < claim layer`, you have two legal
moves and no third:
- **Go get the higher-layer evidence.** Usually cheap: one `git fetch`, one
`curl -D-`, one `vercel ls`.
- **Rewrite the claim down to the layer you actually reached**, explicitly:
*"no blob dependency in the working tree of `fix/embedding-failures` at
`3fe5298`"*. This is honest and often still useful.
Stating the higher-layer claim anyway is the defect. There is no "probably".
**4. Stamp the time.** An L4 observation is true at its timestamp and nowhere
else. Record when you looked, not when you are speaking.
**5. Re-run before repeating.** Before restating an earlier L3/L4 result later in
the same session, re-run it. In the 2026-09-04 incident a correct `curl` at
05:32Z was still being quoted at 07:47Z; the deploy that falsified it landed at
07:07Z, inside the same conversation.
## Verify right-to-left
Default direction: **start at L4 and walk left toward source.**
Left-to-right (read source → infer behavior → assert it) manufactures confident
wrong answers, because the source you are looking at may not be the source that
is running. You cannot detect that from inside the source.
Right-to-left (observe behavior → explain it from the artifact → trace to the
code that produced it) cannot make that error. The rightmost layer is the only
one that cannot be stale about itself.
Worked example, the same incident done correctly:
- **L4 first.** `curl -D- -H "Range: bytes=0-1023"` → `HTTP 200`,
`accept-ranges: none`. *Seeking is broken right now.* True regardless of any
repo state.
- **L3 next.** `vercel ls` → production deploy Ready at 00:07:16 PDT.
`gh run list` → CI red on that commit. *The blob code shipped.*
- **L2 next.** `git fetch` + `HEAD..origin/main` → the merge exists. `git
worktree list` → the CI fix is stranded on an unpushed branch.
- **L1 last.** Read the merged route. It 307-redirects when `episode.audioUrl`
is set and falls back otherwise. Now the L4 observation is *explained*:
today's row predates the deploy, so it has no blob URL.
Reading the route first would have produced "seeking works now," which is false.
The L4 observation is what made the L1 reading mean anything.
## The pause trigger
These words may not be written until step 1–3 has run:From tyroneross/build-loop, Apache-2.0.
More from tyroneross/build-loop
- 0.592score
building-with-deepagents
tyroneross
Build or refactor an agent using the OSS `deepagents` framework (SubAgent API, middleware, tool scoping, streaming, checkpointing).
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
authentication
tyroneross
Use when wiring auth to a new project, debugging login errors (redirect_uri_mismatch, invalid_grant, session callback, refresh_token), or adding social/magic…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
build-loop
tyroneross
The single Build Loop plugin entrypoint.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
api-registry-bridge
tyroneross
Use when Phase 1 Assess or Phase 5 Iterate detects a new API dependency, API config fails, or the user asks to "register this API" or "check the API registry".
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
agent-rally-point
tyroneross
Use when coordinating build-loop with peer coding agents, checking Rally Point presence/inbox state, posting handoffs or feedback, validating the embedded…
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
agent-rally-watcher
tyroneross
Use when listening for Rally Point changes, wiring coordination watchers, debugging watch-loop behavior, or changing the future agent-rally-watcher spin-out…
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
attribution-standard
tyroneross
Apply the canonical four-layer Apache-2.0 attribution model (NOTICE, per-file SPDX, REUSE.toml, canary markers) to a repo.
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
auto-decision-capture
tyroneross
Passively capture a substantive decision the user just made, in real time, into build-loop-memory.
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
source-command-promote-experiment
tyroneross
Promote an auto-promoted experimental skill or agent from project-local `.build-loop/skills/active/` into the build-loop plugin repo, making it available…
SkillAFreshness: A★ 1Claude Code +9 - 0.579score
build-loop:architecture-rules
tyroneross
Detect structural rule violations — layer violations, circular dependencies, and connection hotspots.
SkillAFreshness: A★ 1Claude Code +9 - 0.579score
build-loop:architecture-review
tyroneross
Full architectural integrity pass — system flow, connections, documentation drift, and lessons in one report.
SkillAFreshness: A★ 1Claude Code +9 - 0.579score
build-loop:architecture-impact
tyroneross
Blast-radius analysis — trace upstream/downstream dependencies for one component or file before changing it.
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 3
- Last commit (this folder)
- Sep 6, 2026 (1 month ago)
- Last release
- Sep 28, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/tyroneross/build-loop
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from tyroneross
- 0.592score
building-with-deepagents
tyroneross
Build or refactor an agent using the OSS `deepagents` framework (SubAgent API, middleware, tool scoping, streaming, checkpointing).
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
authentication
tyroneross
Use when wiring auth to a new project, debugging login errors (redirect_uri_mismatch, invalid_grant, session callback, refresh_token), or adding social/magic…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
build-loop
tyroneross
The single Build Loop plugin entrypoint.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
api-registry-bridge
tyroneross
Use when Phase 1 Assess or Phase 5 Iterate detects a new API dependency, API config fails, or the user asks to "register this API" or "check the API registry".
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
attribution-standard
tyroneross
Apply the canonical four-layer Apache-2.0 attribution model (NOTICE, per-file SPDX, REUSE.toml, canary markers) to a repo.
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
auto-decision-capture
tyroneross
Passively capture a substantive decision the user just made, in real time, into build-loop-memory.
SkillAFreshness: A★ 1Claude Code +9
Cite this page
claim-scope skill. Agent Mart. https://agentmart.dev/skills/tyroneross-claim-scope (last updated 2026-10-24)