fast-implement
Implement a piece of work in a single session, without the coordinator pipeline's approval gates.
Skill by PVMalove
Chalk Labs
Need help deploying fast-implement?
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/pvmalove-fast-implement
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: data
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 and code. 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/fast-implement
What's inside
- Skill name
fast-implement- Description
- Implement a piece of work in a single session, without the coordinator pipeline's approval gates.
- License
- MIT
- Instructions
- 65 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- openai.yaml · agents/
SKILL.md (first lines)
# Fast implement
**Objective:** Implement the work described by the user in the spec or tickets, in this session, with
no architect step, no independent QA role, and no coordinator approval gates.
This is the short path. Use it for a ticket whose direction is not in question and whose blast radius
is small. For anything else use `/implement`, which runs the gated architect → developer →
code-review → QA pipeline.
## Execution in Three Phases
A strict pipeline, resolved in order: **Pre-flight** (confirm the ticket is actually startable, and by this agent) → **Coding** (TDD, tests, an explicitly approved review, commit, and push) → **PR & Wrap-up** (offer the separate `/to-pull-requests` command). Only the developer can select `/to-pull-requests`.
### Phase 1: Pre-flight
On GitLab, every `glab` command names the project with `-R <project-url>`; `<project-url>` and the other GitLab placeholders (`<host>`, `<project-id>`) are defined in `docs/agents/issue-tracker.md` → GitLab → Conventions.
1. **Resolve the ticket.**
- **A specific ticket is named** (an issue number, URL, or a `.scratch/<feature>/issues/NN-*.md` path): use it.
- **Fail fast on `hitl`:** if it carries `hitl` (see `docs/agents/triage-labels.md`), stop immediately and tell the user to run `/to-guide` instead — don't check anything else on this ticket, this agent only implements `afk` work.
- **Fail fast without `pipeline::fast`:** for an `afk` ticket, require the explicit `pipeline::fast` label (GitHub/GitLab) or `**Pipeline:** pipeline::fast` field (local tracker) — see `docs/agents/triage-labels.md`. If the label/field is absent entirely or is `pipeline::full`, stop immediately and tell the user to run `/implement` instead.
- **An epic is named** (carries `status::specs`, or is otherwise the parent of a decomposition) rather than a specific ticket: pick the next ticket yourself instead of asking. Never auto-pick a `hitl` ticket — that execution mode always routes through `/to-guide`, not this agent.
- **GitHub/GitLab:** run the same frontier query `/wayfinder` uses (`docs/agents/issue-tracker.md#wayfinding-operations`), scoped to the epic's sub-issues and filtered to `pipeline::fast` + `afk` — open, unblocked, unclaimed, first in decomposition order. Claim the chosen ticket (`gh issue edit <n> --add-assignee @me` on GitHub, `glab issue update <n> -R <project-url> --assignee @me` on GitLab) before any other write, the same way `/wayfinder` claims a ticket, so a concurrent session (e.g. a parallel worktree) doesn't pick the same one. If the filtered frontier is empty, stop and tell the user why: if open, unblocked, unclaimed tickets remain but all are `hitl`, say so and point at `/to-guide`; if unblocked `afk` tickets remain but none carry `pipeline::fast` (label missing or `pipeline::full`), say so and point at `/implement`; otherwise explain that nothing is unblocked yet, or everything is already claimed.
- **Local tracker:** read each `.scratch/<feature>/issues/NN-*.md` file in filename order — a purely linear chain — and take the first one that is `**Workflow:** status::ready`, `**Execution:** afk`, and `**Pipeline:** pipeline::fast`. If tickets remain but every `status::ready` one is `hitl`, say so — naming them — and point at `/to-guide` instead of picking one; if `afk` ones remain but none carry `**Pipeline:** pipeline::fast`, say so — naming them — and point at `/implement` instead.
- Once chosen this way, treat the ticket exactly like one named explicitly for the rest of this process.
- **Nothing is named:** when this repo defines a git workflow doc (e.g. `docs/agents/git-workflow.md`) with an "Issue First" rule, stop and ask the user to name an existing ticket or run `/to-spec`/`/to-tickets` first — don't start the work. Otherwise, skip this check entirely.
2. **Check blockers**, on the resolved ticket, whatever its current `status::*` label. Read its blockers from this repo's tracker (native GitHub/GitLab dependency links, or the `Blocked by:`/`**Blocked by:**` field — see `docs/agents/issue-tracker.md`).
- Any blocker still open → stop and tell the user which ones. Don't start the work. If the ticket isn't already `status::blocked`, set it (same label swap as step 3).
- All blockers closed/resolved (or none) → continue. A `status::blocked` ticket passes through `status::ready` in step 3.
3. **Mark it in progress before creating the issue branch or editing any file**, in every run mode, cloud and single-session runs included. A ticket carries exactly one `status::*` label (see `docs/agents/triage-labels.md`), so replace, don't add:
- **GitHub:** `gh issue edit <n> --remove-label status::ready --remove-label status::blocked --add-label status::in-progress`, then confirm with `gh issue view <n> --json labels --jq '[.labels[].name]'` that `status::in-progress` is the only `status::*` label.
- **GitLab:** `glab issue update <n> -R <project-url> --unlabel status::ready,status::blocked --label status::in-progress`, then confirm with `glab issue view <n> -R <project-url> -F json` that `status::in-progress` is the only `status::*` label in its `labels`.
- **Local tracker:** set the file's `**Workflow:**` line to `status::in-progress`.
- If the label write fails, stop and report it; don't start coding on an unmarked ticket.
4. **Git pre-flight, before editing files:**
- Resolve the exact integration branch from the ticket's `## Integration Branch` section or,
for a child ticket that omits it, from its parent epic. An absent value is a blocker; do not
infer a branch from memory, the current checkout, or a service name.
- The current branch must match `branch_pattern` and be an issue branch. If it does not,
fetch the integration branch and create `feature/issue-<ID>-<slug>` from it before coding.
Never commit or push directly to the project base branch or an `integration/*` branch.
### Phase 2: Coding
1. **Agree the seams before the first test.** Name the requirement and the public seam where its behavior is observed, with the public signatures and existing fixtures. When the ticket or spec already names them, restate them and ask the developer to confirm; otherwise propose them. Stop for the developer's answer. Never invent a seam and never write a test before the developer has agreed it.
2. Use `/tdd` at those seams. Run `.claude/hooks/test-author-preflight.sh` once before the first test. Exactly `{"status":"ok"}` selects the test-author cycle below. Any other answer (`disabled`, a missing or failing hook, unavailable isolation, no `test_paths` or `test_runner`) selects the ordinary `/tdd` route in this session: tell the developer the sanitized `reason` (or that the hook failed) in one line, do not start an unprotected author, and do not re-run preflight hoping for another answer. Neither route adds a coordinator, architect or QA step.
3. **Test-author cycle.** It is the same cycle as the full route (`Red-Green-Refactor with the optional test author` in the orchestration `developer.md`, and the tdd skill), and you play the developer. For each implementation step, in order:
- **Handoff:** call the `test-author` with the requirement, the agreed seam, the public signatures, the existing fixtures and one scenario. Never pass a proposed algorithm or implementation snippet as the basis of an expectation.
- **Reply:** it answers in compact English with `status` (`red`, `needs_skeleton` or `contract_gap`), the requirement, the inputs, the source of the expectation, the test id and, for `red`, the sanitized runner JSON plus the failed assertion, the expectation and the actual result from the run's `log.txt`.
- **Verify the expectation** against the requirement and its stated source before any implementation. An expectation derived from the implementation, or one the requirement does not support, goes back to the author as a failed call. An accepted expectation is never weakened to reach Green; only a justified contract change (the requirement or the agreed seam changed with the developer) allows correcting it, with a new author call and a new verification.
- **Statuses:** `red` continues. `needs_skeleton`: write only types and signatures with no logic, then rerun the author on the same scenario. `contract_gap`: clarify the requirement or seam with the developer, never guess it.
- **Not a behavioral Red:** a compile or import error, a fixture error, and an environment or runner refusal are never Red, whatever `status` says. A test that is Green immediately does not count as a cycle. Each is a failed author call.
- **Green, then Refactor:** after a confirmed behavioral Red, write the minimal implementation that passes the unchanged test and run it by its test id; refactor only on Green, re-run the test, then request the next test.
- **Attempt limit:** after three consecutive failed author calls on one test, stop the local retries and report the blocker to the developer. A guard denial counts as one failed call, and the denied call is never rephrased. Local retries create no dispatch and no ledger state.
4. Run typechecking regularly, single test files regularly, and the full test suite once at the end.
5. Ask the developer: “Провести code review?” Stop for their answer.
- **Yes:** run `/code-review`. It launches the Standards and Spec subagents through the coding application's manually configured mechanism, waits for both reports, and returns its separate `## Standards` and `## Spec` report to this primary session. Address any requested changes, then repeat the relevant tests before continuing.
- **No:** record that the developer declined review and continue.
6. Ask the developer for explicit permission to commit and push. Stop for their answer.
7. After approval, verify that the current branch still matches `branch_pattern` and is neither `base_branch` nor `integration/*`; commit the completed work with a Semantic Commit Message and push it to the current issue branch. Report the commit and push result to the developer.
### Phase 3: PR & Wrap-up
After a successful push, offer `/to-pull-requests <ticket>` as the next command. Do not invoke it automatically, open a PR, run `qa-gate`, or close the ticket in this skill. Leave `status::in-progress` on the ticket: this skill never removes it. Closing the ticket and moving its unblocked dependents to `status::ready` belong to `/to-pull-requests` after the merge.From PVMalove/claude-agent-harness, MIT.
More from PVMalove/claude-agent-harness
- 0.621score
qa-gate
PVMalove
Run this project's full local quality gate (lint/typecheck/test commands from .harness/project.json) and report pass/fail.
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
start-project
PVMalove
Start a new project from an idea or create, audit, or update its self-contained agent harness.
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
integrate-project
PVMalove
Audit an existing, already-substantial codebase and fold this harness into it without disrupting what's already there.
SkillAFreshness: A★ 5Claude Code +9 - 0.616score
to-guide
PVMalove
Turn a hitl ticket or spec into a step-by-step manual implementation guide with ready-to-paste prompts for an AI IDE (Cursor, Copilot Chat).
SkillAFreshness: A★ 5Claude Code +9 - 0.616score
delivery-stats
PVMalove
Collect delivery statistics for a finished epic and every ticket under it: tokens by model, cache efficiency, estimated cost, subscription window and code…
SkillAFreshness: A★ 5Claude Code +9 - 0.616score
tdd
PVMalove
Use test-driven development to build behavior or fix bugs test-first, at agreed public seams, with independent expectations, deterministic boundaries, and a…
SkillAFreshness: A★ 5Claude Code +9 - 0.616score
to-pull-requests
PVMalove
Prepare and open a pull request for an already pushed issue branch.
SkillAFreshness: A★ 5Claude Code +9 - 0.616score
to-tickets
PVMalove
Break a plan, spec, or conversation into a set of tracer-bullet tickets with blocking edges, and publish them to the configured tracker.
SkillAFreshness: A★ 5Claude Code +9 - 0.613score
implement
PVMalove
Coordinate one backend ticket through the approved architect, developer, review, QA, and publish handoffs.
SkillAFreshness: A★ 5Claude Code +9 - 0.613score
architect
PVMalove
Compare architectural options and produce a decision brief in an interactive session.
SkillAFreshness: A★ 5Claude Code +9 - 0.611score
setup-labels
PVMalove
Create or update this repo's GitHub or GitLab labels (status::*, hitl/afk, task-report::required, resolution::wontfix, wayfinder:*) to match…
SkillAFreshness: A★ 5Claude Code +9 - 0.599score
diagnosing-bugs
PVMalove
Diagnosis loop for hard bugs and performance regressions.
SkillAFreshness: A★ 5Claude Code +9
Signals
- Stars
- 5
- Forks
- 0
- Open issues
- 42
- Last commit (this folder)
- Oct 18, 2026 (12 days ago)
- Last release
- Oct 18, 2026 (12 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/PVMalove/claude-agent-harness
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from PVMalove
- 0.621score
qa-gate
PVMalove
Run this project's full local quality gate (lint/typecheck/test commands from .harness/project.json) and report pass/fail.
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
integrate-project
PVMalove
Audit an existing, already-substantial codebase and fold this harness into it without disrupting what's already there.
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
start-project
PVMalove
Start a new project from an idea or create, audit, or update its self-contained agent harness.
SkillAFreshness: A★ 5Claude Code +9 - 0.616score
delivery-stats
PVMalove
Collect delivery statistics for a finished epic and every ticket under it: tokens by model, cache efficiency, estimated cost, subscription window and code…
SkillAFreshness: A★ 5Claude Code +9 - 0.616score
tdd
PVMalove
Use test-driven development to build behavior or fix bugs test-first, at agreed public seams, with independent expectations, deterministic boundaries, and a…
SkillAFreshness: A★ 5Claude Code +9 - 0.616score
to-guide
PVMalove
Turn a hitl ticket or spec into a step-by-step manual implementation guide with ready-to-paste prompts for an AI IDE (Cursor, Copilot Chat).
SkillAFreshness: A★ 5Claude 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 fast-implement 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
fast-implement skill. Agent Mart. https://agentmart.dev/skills/pvmalove-fast-implement (last updated 2026-10-24)