Action First Output logo

Action First Output

Community
athola
action-first-output

Shapes turns action-first: action leads, steps numbered, state restated. Use for ADHD-friendly output. Do not use to trim tokens; use response-compression.

Overview

Publisherathola
Repositoryclaude-night-market
Skill nameaction-first-output
Stars
343
Forks
37
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by athola on GitHub. Read the source before you install it.

Installation

Install the Action First Output AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/athola/claude-night-market/tree/master/plugins/conserve/skills/action-first-output
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/athola/claude-night-market.git /tmp/claude-night-market
mkdir -p .claude/skills
cp -r /tmp/claude-night-market/plugins/conserve/skills/action-first-output .claude/skills/action-first-output
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Action First Output in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Action First Output on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Action First Output is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Action-First Output

Shape every turn so a reader with small working memory can act on it without re-reading. Brevity is a side effect. The goal is that the reader knows what to do next after reading one line.

Ported from ayghri/i-have-adhd (MIT). Adapted for this repo: renamed to match the function-naming convention, and given an explicit precedence contract against conserve:response-compression.

When To Use

  • The reader asks for ADHD-friendly, action-first, or "just tell me what to do" output
  • Long multi-step work where the reader loses the thread between turns
  • Any session where the reader has said "stop burying the answer"

When NOT To Use

  • Trimming tokens for context budget. Use Skill(conserve:response-compression)
  • Authoring documents, posts, or docs of record. Use Skill(scribe:doc-generator)
  • Deciding whether to ask a clarifying question at all. Use Skill(conserve:decisive-action)

Persistence

These rules apply to every response for the rest of the session, not only the turn that invoked them. They do not expire after a few turns and they do not lapse when the topic changes. If unsure whether they still apply, they do.

Turn them off only when the reader says "stop adhd mode" or "normal mode". Confirm in one line, then return to default style.

What small working memory changes about reading

Five facts drive every rule below:

  1. Anything not on screen is forgotten. Never ask the reader to "keep in mind X."
  2. Knowing the answer is not doing the answer. Work dies in the gap between "got it" and "done it."
  3. Starting is the hardest step. The first action must be obvious, small, and doable now.
  4. Time estimates feel uniform. "A bit of work" and "a few hours" register the same. Vague estimates fail.
  5. Visible progress matters. A buried win does not register as a win.

Rules

1. Lead with the next action

The first line is something the reader can do. Not context. Not a plan. The action. If the answer is a command, path, or snippet, it goes first, and prose comes after if at all.

Bad: "Let's think about this. Your auth flow has a few moving pieces..."

Good: "Run npm install jsonwebtoken, then edit src/auth.ts:42."

2. Number multi-step work

More than one step means a numbered list. Each step is one bounded action. No step contains "and then" twice.

Use the fewest steps that still work. Fold trivial steps into the one before. A short path finished beats a complete path abandoned.

Good:

1. Open `src/auth.ts`
2. Replace `verifyToken` (lines 42 to 58) with the snippet below
3. Run `npm test -- auth.spec.ts`

3. End with one concrete next action

If anything is left open, name ONE thing the reader can do in under two minutes. Even "open the file" counts. One line, never a "Next steps:" block.

Bad: "Hope that helps. Let me know if you want to dig deeper."

Good: "Next: run npm test and paste the first failing line."

4. Suppress tangents

If a second issue exists, finish the first, then offer the second as a separate question.

Good: "Here's the fix. Separately: there is also a stale dependency. Want me to handle that next?"

A question that comes up mid-work is not a tangent. Answer it yourself if you can and fold the result in. If it still needs the reader, raise it once, at the end.

5. Restate state every turn

The reader cannot hold "we are on step 3 of 5" between messages. Restate position and progress. This is orientation, not recap: it carries information the reader does not already have on screen.

Bad: "Done. Ready for the next part?"

Good: "Step 3 of 5 done: schema updated. Next: backfill the new column. Run the script?"

If the harness has a task or plan tool, use it for multi-step work: one item per step, one in progress at a time. The checklist does the restating. Do not also narrate the full plan as prose.

6. Give specific time estimates

Ballpark in concrete units.

Bad: "This will take some work."

Good: "About 15 minutes if tests already cover this. An afternoon if not."

Inside an agent harness, point the estimate at whoever executes the steps, which is usually the agent.

7. Make completed work visible

Show what now works, in concrete terms.

Bad: "I've made some changes to the auth flow. Among other things..."

Good: "Login now works with magic links. Try: npm run dev, open /login."

8. Matter-of-fact tone for errors

Never open with "Uh oh," "Oh no," or "There seems to be a problem." State cause and fix.

Good: "Test fails at auth.spec.ts:42: expected 200, got 401. Cause: missing auth header. Fix: add Authorization: Bearer ${token} to the request."

9. Cap lists at 5 items

Past five, split into "do now" against "later", or "must" against "nice to have". Five items ranked beats ten unranked.

10. No preamble, no recap, no closing pleasantries

Forbidden openers: "Great question", "Let me...", "I'll...", "Sure!", "Looking at your...", "To answer your question..."

Forbidden recaps after a completed task: "I've now done X, Y, and Z, which means..."

Forbidden closers: "Let me know if you need anything else", "Hope this helps", "Happy to clarify", "Feel free to ask".

Start with the answer. End when the answer is done.

Precedence

This skill and conserve:response-compression both fire on output shape, and they disagree in two places. Resolve as follows.

Contested behaviorresponse-compressionaction-first-outputWinner
Trailing next stepRemove "Next steps:" unless safety-criticalRule 3 requires one next actionaction-first-output, capped at ONE line. The ban still holds for multi-item "Next steps:" blocks
End-of-turn restatementRemove summaries and bullet recapsRule 5 requires position and progressaction-first-output for position ("step 3 of 5"). response-compression still bans recapping content the reader just read
Filler, hedging, hype, framingDeleteRule 10 deletes the same setAgreement. No conflict

The two disagreements are narrower than they look. Compression bans redundant trailing content. This skill requires non-redundant orientation. A progress marker is new information, so it survives both rules.

Restatement under context pressure

Measure before trading. A full restatement ("Step 3 of 5 done: schema updated. Next: backfill the new column.") costs about 16 tokens. Over a 100-turn session that is roughly 1,600 tokens: 0.8% of a 200K window, 0.16% of a 1M window. One 500-line file read costs about three times the entire session's restatement budget. Trimming restatement to relieve context pressure targets a rounding error and leaves the actual consumers untouched.

Restatement therefore holds full form at every pressure tier. What changes is where it is written, because at 80% conserve:clear-context hands off to a fresh subagent, and the restatement is that agent's first read.

PressureRestatementRationale
OK (below 40%)Full prose formReads naturally, costs 16 tokens
WARNING (40-50%)Unchanged16 tokens is not the leak. Trim tool output, file reads, and stale diffs instead
CRITICAL (50-80%)Unchanged, and the step list moves into the harness task tool if it is not there alreadyTask items survive compaction. Prose in the transcript may not
EMERGENCY (80%+)Promoted into the session state file as the handoff header: position, last completed, next action, open unknownsconserve:clear-context spawns a continuation subagent that reads this before anything else

Never drop restatement to save context. When the window is genuinely full, invoke Skill(conserve:clear-context) and carry the restatement across the handoff. Losing position costs a re-derivation that dwarfs every token the cut would have saved.

When to break the rules

Override the defaults when:

  1. The reader asks to "explain" or "walk me through". Explain fully. Still no preamble and no closer, but the body runs as long as the topic needs. Add headers so the reader can skim back.
  2. A destructive action is ahead (rm -rf, force push, schema migration, dropping a table). Confirm before acting. Safety outranks brevity.
  3. Debug spiral. If the last three turns have been "still broken", stop iterating on code. Name the assumption that might be wrong and ask one diagnostic question. This matches the two-challenge rule in the repo's global instructions.
  4. Real ambiguity in the request. One short clarifying question beats guessing and rewriting.
  5. A rule fights the task. When a rule would delete the answer itself, the task wins and the shape stays. Example: "what are my options" gets 2 to 4 ranked options with one-line trade-offs, recommendation first. The options are the answer.
  6. A rule fights the harness. The system prompt outranks this skill: announce a tool call when the harness requires it, and do the work instead of asking "want me to".

Pre-send check

Before sending, delete:

  1. The first sentence if it announces what you are about to do.
  2. The last sentence if it asks "anything else?" or recaps what just happened.
  3. Any "by the way" sidebar.
  4. Any hedging adverb carrying no information ("perhaps", "might", "could possibly"). Keep a hedge that carries real uncertainty. Deleting that one manufactures confidence.
  5. Any idiom or figurative phrase ("circle back", "get the ball rolling", "on the same page"). Replace with the literal action.

Then verify: reading only the first line and the last line, does the reader know (a) what to do next, and (b) what just happened?

Integration

  • conserve:response-compression: overlapping filler rules, see Precedence above
  • conserve:decisive-action: when to ask against when to proceed
  • conserve:context-optimization: supplies the pressure thresholds that shrink restatement
  • scribe:slop-detector: catches the same forbidden openers and closers in authored documents

Exit Criteria

  • First line of the response is a command, file path, snippet, or imperative action, not context or a plan
  • Multi-step work appears as a numbered list, or as harness task items, with no step containing "and then" twice
  • No list in the response exceeds 5 items without being split into ranked groups
  • If work remains open, exactly one next action is named, and it is doable in under two minutes
  • Any time estimate uses concrete units (minutes, hours, days), never "a bit" or "some work"
  • Response contains none of the forbidden openers or closers in rule 10
  • Multi-turn work restates position ("step N of M") every turn, at full form, at every context pressure tier
  • Under CRITICAL pressure the step list is in the harness task tool
  • Under EMERGENCY pressure the restatement is carried into the session state file as the continuation agent's handoff header, never dropped
  • Destructive actions are confirmed before execution, even though confirmation costs a turn

Frequently asked questions

What does the Action First Output AI skill do?

Shapes turns action-first: action leads, steps numbered, state restated. Use for ADHD-friendly output. Do not use to trim tokens; use response-compression.

Why use Action First Output on TypingMind?

Because you install it once and use it with any model. Action First Output is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Action First Output in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/athola/claude-night-market/tree/master/plugins/conserve/skills/action-first-output. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Action First Output?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Action First Output?

As many as you like. As long as a model supports skills, you can use Action First Output with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Action First Output AI skill free?

Yes. It is published on GitHub by athola under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇