Skip to content
Agentmart
Submit a tool

roi-outline

Generate structured ROI plans with waves, dependencies, and falsifiable verification targets.

Skill by instagrim-dev

IndexedMIT★ 1
Write a review

Chalk Labs

Need help deploying roi-outline?

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/instagrim-dev-roi-outline

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

Generate structured ROI plans with waves, dependencies, and falsifiable verification targets. One mission can have multiple plans.

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. 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/roi-outline

What's inside

Skill name
roi-outline
Description
Generate structured ROI plans with waves, dependencies, and falsifiable verification targets. One mission can have multiple plans.
License
MIT
Instructions
469 lines in SKILL.md · view on GitHub

Agent Skills spec issues

  • files: referenced but missing: references/agentic-plan-strength.md

Files (1)

  • SKILL.md

SKILL.md (first lines)

# roi:outline — generate plans

This skill turns a clarified brief into one or more **executable plans**
with waves, dependencies, and verification targets. It owns one stage:
**read brief → generate plans → confirm storage → next-step pointer**.

A plan is what `roi:go` implements. Each plan has:

- `actions` — outcome-oriented changes the implementation must achieve.
- `verification_targets` — falsifiable oracles (commands, builds, greps)
  that prove the actions landed.
- `dependencies` — plan UUIDs this plan depends on (waits until those
  pass).
- `wave` — integer ordering for parallelizable batches.

**Read first when planning for agents:**
[`references/agentic-plan-strength.md`](../references/agentic-plan-strength.md)
covers outcome strength, binding altitude, and property-style verification.

## Inputs

1. **Mission ID** required.
2. **Optional inline Plan text** — output pasted or carried in-context from
   Codex Plan mode, Copilot, Claude Code, Cursor, CE, or Markdown. Run
   `plan_normalize` first; use `normalized.plans` as the draft plan array
   after applying this skill's quality checks.
3. **Optional source artifact** — a CE plan, maturity requirements doc, or
   convergence seam manifest. When present, **import** constraints and
   properties from it; do not re-scope in ROI. If its acceptance bullets
   must survive execution, mark affected plans with `source_contract_refs`
   and `requires_source_contract_check: true`.
4. **Optional plans array** — when the operator already has a draft plan
   structure, pass it directly to `plan_generate`.

## Procedure

1. Read the brief and any prior plans:

   ```bash
   node roi/scripts/lifecycle.mjs brief_get_latest '{"mission_id":"<id>"}'
   node roi/scripts/lifecycle.mjs plan_list '{"mission_id":"<id>"}'
   ```

2. **Validate brief inventory against the live tree.** Before composing
   plans, re-derive every quantitative claim in the brief from the actual
   codebase. Briefs frequently undercount because they were seeded from
   chat memory or a prior mission's notes — see
   `roi-clarify` "Evidence discipline."

   For each quantitative claim in `success_criteria`, `constraints`, or
   `assumptions`:

   - Run the citation command if the brief carries one. If the brief carries
     no citation, derive one now (typically `rg -l <pattern> <scope>`).
   - Compare the live count against the brief's count. If the live tree
     reveals more importers, files, call sites, or affected packages than
     the brief named, **stop and `brief_revise`** before planning. Don't
     paper over the gap with bigger per-plan actions.
   - Inventory every importer/caller/path the plans will need to touch.
     Write them down (in the brief or in a scratch note) so the planner
     can reason about plan boundaries against an accurate footprint, not
     a stale one.

   **Why:** plans inherit the brief's inventory. If the brief says "5
   importers across 4 files" and reality is 17 across 9, the planner will
   compose actions and oracles scoped to the 4 named files, every oracle
   will pass during `roi:go`, and the mission-level invariant
   ("core does not import UI") will still be violated by the 5 unnamed
   files. The planner-stage discovery cost is O(minutes); the
   post-`roi:go` cost is O(hours) of partial-completion cleanup.

   **Stop conditions for this step:**

   - Brief carries an unsourced quantitative claim → `brief_revise` to mark
     it `assumed: true` and move it to `open_questions`, *or* derive it now
     and rewrite the brief with the citation.
   - Live tree count diverges materially from the brief → `brief_revise`
     before `plan_generate`. Document the divergence in the new revision
     so the trail is durable.
   - Brief contains no quantitative claims → skip this step.

   Counts in this inventory are scope telemetry only. They can expose stale or
   incomplete discovery, but no count, percentage, score, or ContextPack TTL
   proves that planning orientation is sufficient. Sufficiency requires
   owner-seam coverage and disposition of every material uncertainty.

3. **Resolve scope-affecting open_questions in the brief, not the plan.**
   Read every entry in the brief's `open_questions`. For each entry, ask:
   *would its answer change which files the plans touch, which subsystems
   are excluded, or the count of importers a plan must rewrite?* If yes,
   it is **scope-affecting** and must be resolved before `plan_generate`.

   Resolution paths (try in order):

   1. **Run the discovery command.** Most scope questions reduce to "what
      does the live tree contain?" — run the `rg` / `go list` / equivalent
      now and call `brief_revise` to record the answer as a constraint or
      non_goal. The question disappears from `open_questions` because it
      is answered.
   2. **Ask the operator once.** When the question genuinely requires
      operator judgment ("treat package X as honorary UI?"), ask once,
      capture the answer in `brief_revise`, then continue. Do **not**
      defer the question into a plan with "deferred decoupling" comments
      or allowlist entries that catalog the ambiguity.
   3. **Stop and report** if the brief is too unsettled to ground a plan.
      Returning the operator to `roi:clarify` is preferable to writing
      plans that inherit the confusion.

   **Failure mode this prevents:** plans that allowlist or comment-out
   ambiguity ("// TODO: confirm with operator whether uireplay is core")
   make the plan a catalog of unresolved scope decisions instead of an
   instruction set. `roi:go` then asks the operator scope questions at
   execute time, which is the most expensive moment to ask. The plan is
   the clarification — it must commit to a position, not list options.

   **Stop conditions for this step:**

   - At least one `open_questions` entry is scope-affecting and unresolved
     → resolve it now via discovery or operator interaction; rewrite the

From instagrim-dev/roir, MIT.

More from instagrim-dev/roir

Signals

Stars
1
Forks
0
Open issues
0
Last commit (this folder)
Jul 11, 2026 (3 months ago)
Last release
Aug 1, 2026 (3 months ago)

From GitHub (fetched Oct 24, 2026).

Details

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

More from instagrim-dev

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 roi-outline 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 roi-outline?

CallGet help
Cite this page

roi-outline skill. Agent Mart. https://agentmart.dev/skills/instagrim-dev-roi-outline (last updated 2026-10-24)