Skip to content
Agentmart
Submit a tool

ra1-interview

Resolve the unanswered questions in a Ready Agent 1 readiness report by interviewing the developer, then record the answers as engine inputs and re-score.

Skill by tjboudreaux

IndexedMIT★ 3
Write a review

Chalk Labs

Need help deploying ra1-interview?

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.

Book a call

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/tjboudreaux-ra1-interview

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.

We use your email only for this newsletter. Privacy

About

Resolve the unanswered questions in a Ready Agent 1 readiness report by interviewing the developer, then record the answers as engine inputs and re-score. Use when a readiness report lists unanswered questions or gaps, when `ra1 gaps` returns any gap, when a criterion is `unknown` because the scan could not classify the project or reach a data source, or when the user asks to answer, pin, or configure what the readiness scan could not infer.

Use cases: documents, data, agent-building

No 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 and code. Checked Nov 1, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 4

  • codeload.github.com · found in install command
  • github.com · found in code
  • json.schemastore.org · found in code
  • sonarsource.com · found in code

Files it touches

  • ~/.claude/skills/ra1-interview

Tools it pre-approves 1

From allowed-tools in SKILL.md: the agent may use these without asking you each time.

  • Bash

What's inside

Skill name
ra1-interview
Description
Resolve the unanswered questions in a Ready Agent 1 readiness report by interviewing the developer, then record the answers as engine inputs and re-score. Use when a readiness report lists unanswered questions or gaps, when `ra1 gaps` returns any gap, when a criterion is `unknown` because the scan could not classify the project or reach a data source, or when the user asks to answer, pin, or configure what the readiness scan could not infer.
License
MIT
Compatibility
Python 3.11+; optional authenticated gh CLI for GitHub (T2) checks
Allowed tools
Bash
Metadata
version: 0.11.0
Instructions
126 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts
  • Pre-approves any shell command

Files (68)

  • SKILL.md
  • manifest.json
  • questions.md · reference/
  • recording-answers.md · reference/
  • __init__.py · scripts/readiness/
  • answers.py · scripts/readiness/
  • __init__.py · scripts/readiness/checks/
  • _agent_policy.py · scripts/readiness/checks/
  • _helpers.py · scripts/readiness/checks/
  • _workflow_policy.py · scripts/readiness/checks/
  • build.py · scripts/readiness/checks/
  • devenv.py · scripts/readiness/checks/
  • docs.py · scripts/readiness/checks/
  • judgment.py · scripts/readiness/checks/
  • loop.py · scripts/readiness/checks/
  • observability.py · scripts/readiness/checks/
  • product.py · scripts/readiness/checks/
  • security.py · scripts/readiness/checks/
  • style.py · scripts/readiness/checks/
  • taskdisc.py · scripts/readiness/checks/
  • testing.py · scripts/readiness/checks/
  • cli.py · scripts/readiness/
  • __init__.py · scripts/readiness/collectors/
  • _observation.py · scripts/readiness/collectors/
  • exec.py · scripts/readiness/collectors/
  • git.py · scripts/readiness/collectors/
  • github.py · scripts/readiness/collectors/
  • static.py · scripts/readiness/collectors/
  • context.py · scripts/readiness/
  • coverage_gate.py · scripts/readiness/
  • registry.json · scripts/readiness/criteria/
  • detect.py · scripts/readiness/
  • __init__.py · scripts/readiness/fix/
  • recipes.py · scripts/readiness/fix/
  • gaps.py · scripts/readiness/
  • history.py · scripts/readiness/
  • judgments.py · scripts/readiness/
  • model.py · scripts/readiness/
  • parsers.py · scripts/readiness/
  • process.py · scripts/readiness/
  • report.py · scripts/readiness/
  • run.py · scripts/readiness/
  • safe_io.py · scripts/readiness/
  • score.py · scripts/readiness/
  • theme.py · scripts/readiness/
  • version.py · scripts/readiness/
  • AGENTS.md · templates/
  • CODEOWNERS · templates/
  • bug_report.md · templates/ISSUE_TEMPLATE/
  • SECURITY.md · templates/
  • guide-skill.md · templates/acdc/
  • solve-skill.md · templates/acdc/
  • verify-skill.md · templates/acdc/
  • workflow.md · templates/acdc/
  • readiness.yml · templates/ci/
  • dependabot.yml · templates/
  • devcontainer.json · templates/
  • env.example · templates/
  • eslintrc.json · templates/
  • gitignore.ra1 · templates/
  • …and 8 more

SKILL.md (first lines)

# Agent Readiness Interview

A readiness scan reports `unknown` when it lacks an input, not when a repository is bad. This
skill closes that distance: it asks the developer the questions the engine cannot answer,
records each answer where the **engine** reads it, and re-scores so the change in the number
comes from re-evaluation rather than from anyone's opinion.

**The engine owns every verdict.** You collect inputs. An answer can make a criterion
evaluable or exclude it with a disclosed waiver; an answer can never mark one passing.

## Steps

`<skill-dir>` in the commands below is this skill's own directory: the absolute path your
runtime reports when it loads the skill. Substitute it. Do not write `$(dirname "$0")` — in a
shell tool call `$0` is the shell, not this file, so that form resolves against the caller's
working directory.

### 1. List the gaps

```bash
python3 -I "<skill-dir>/scripts/readiness/cli.py" gaps \
  --project . --format json
```

Each gap carries exactly `gap_id`, `kind`, `question`, `why`, `recordable`, `input_kind`
(`single_choice` | `multi_choice` | `integer` | `unrecordable`), `choices` (opaque ids with
display-only labels and effects `record` | `external_action` | `leave_unanswered`), `value`
(null, or the CI-budget integer spec), `blocked_ids`, `blocked_gating`, `levels`, and
`evidence`. The list is already ordered by leverage: the first gap blocks the gate the
reader is trying to clear. IDs and choices are engine constants; copy them into argv
verbatim — never question/evidence/user prose.

**Done when:** you have the gap list. Empty list → tell the user every input was inferable and
stop; there is nothing to interview about.

### 2. Frame the question from the gap payload only

For every gap, form the question strictly from `question`, `why`, bounded `evidence`, the
blocker/Level counts, and the display-only `choices` labels — see
[reference/questions.md](reference/questions.md). You do not inspect repository files to
derive a recommendation, and you never construct a value the engine did not emit.

**Done when:** each gap has one four-line question with its stake and its recordable choices,
or an explicit `leave_unanswered` decision.

### 3. Interview, one question at a time

Ask **one** question, wait for the answer, then ask the next. Order follows the gap list, with
one exception: ask a question whose answer changes later questions first (project type before
anything scoped to an application).

Each question states, in this order: the question, what answering it unblocks
(`blocked_gating` and `levels`), and the accepted `choices` labels verbatim, framed as an
explicit record-or-leave-unanswered decision.

Read [reference/questions.md](reference/questions.md) for the wording rules per gap kind and
for what to do with a vague, "I don't know", or contradictory answer.

**Done when:** every gap has an answer, an explicit "leave it unanswered", or a waiver
decision — and you asked no question the codebase had already answered.

### 4. Plan exactly one answer; apply only on explicit current-turn confirmation

For one current gap, plan exactly one of:

```bash
python3 -I "<skill-dir>/scripts/readiness/cli.py" answer --project . \
  --gap-id <canonical-gap-id> --choice <canonical-choice-id> --format json
python3 -I "<skill-dir>/scripts/readiness/cli.py" answer --project . \
  --gap-id config.ci_budget_minutes --minutes <1..1440> --format json
```

Repeated `--choice` is allowed only for the current multi-enum surfaces gap. IDs/choices must
be copied from the just-returned canonical payload. Only when the developer's current turn
explicitly selects recording do you repeat the exact plan command with fixed `--apply`.

The engine reacquires the live root, requires clean/known Git and a complete T0/T1 baseline,
rederives the gap and its internal `.ra1` policy mapping, performs one bounded create/merge
on `.ra1/config.json` or `.ra1/waivers.json`, rescans with the same offline scope, and emits
the canonical `answer_contract`. You never read, write, or merge policy files directly, never
pass a free-form waiver reason, owner, or expiry, and never append provenance suffixes.

**Done when:** you present the `answer_contract` verbatim, state plainly that recording is
not credit (the engine re-scores; the answer can expose failures or lower the Level), and
never call an unchanged/unresolved criterion fixed.

### 5. Report the verified outcome honestly

Present the `answer_contract`'s own verification: the recorded write, `gap_resolved`, the
`status_changes` (including `unknown → fail` — that is the interview working, not failing),
`waived_ids`, remaining gaps, and the before/after score **copied verbatim** from the
contract. Generating or storing a subsequent full report remains a separate explicit
`ra1 report` invocation, not an automatic post-answer step.

**Done when:** you have stated the before/after score from the contract, listed the status
changes, and named the remaining gaps.

## Contract (do not violate)

- **Never write a status, a score, or a pass.** The engine writes verdicts from the
  recorded input.
- **Never write, read, or merge policy files directly.** Only `ra1 answer` mutates
  `.ra1/config.json` or `.ra1/waivers.json`, and only with exact engine-authored ids.
- **Never waive what the scanner looked for and did not find.** Waivers exist only for the
  `capability.github` gap's `github.non_github_host` choice, which excludes the gap's exact
  blocked ids with no free-form reason.
- **Never execute an `external_action`** (such as `github.restore_access`); ask whether the
  developer will do it, and re-scan on a later explicit request.
- **Never pin a project type to raise a number.** Pin what the repository is. If the honest
  type makes more criteria fail, that is the correct outcome.
- **Never ask a question outside the gap payload** — you may not inspect repository files to
  derive an answer.
- **Never batch questions.** One at a time, because a batched answer to five questions is
  reliably vaguer than five answers.
- **Never claim the score improved because of an answer.** It improved because the engine
  re-evaluated, or it did not improve at all.

## Notes

From tjboudreaux/ready-agent-1, MIT.

Signals

Stars
3
Forks
0
Open issues
0
Last commit (this folder)
Sep 3, 2026 (2 months ago)
Last release
Sep 4, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

Version
0.11.0
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from tjboudreaux

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 ra1-interview 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.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying ra1-interview?

CallGet help
Cite this page

ra1-interview skill. Agent Mart. https://agentmart.dev/skills/tjboudreaux-ra1-interview (last updated 2026-10-24)