agentleFS
skyf0xxskyf0xx/gambit/skills/recon/SKILL.md

recon

Skill29 starsChanged 33 days agoMITView on GitHub

Use when the plan hangs on something the user does not know yet — a date, a rule, a person's position, a price, whether a door is open. Turns each unknown into a question with a reason, a way to find out and a date to know by, and records the answer when it comes in. Writes to the goal's intel key.

We split this skill into the rules it gives an agent

11 rules. 0 are common, 4 are distinctive, and 7 are very specific to this project.

  • 0

    Common

    Most of the 19 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read the goal: the focus, plan, posture, stakeholders, systemsNotes, and any intel already there.

    line 41
  2. Very specific:

    Before plan links a chain of escalations, the usual unknowns are who owns the problem and how its formal channels work: the complaint …

    line 51
  3. Distinctive:

    Keep the few that would change a decision.

    line 55
  4. Distinctive:

    When the answer is a person's own behaviour (a customer, a member, a user, a buyer), ask it the way Rob Fitzpatrick sets out in *The Mom …

    line 71
  5. Distinctive:

    Ask about the past and specifics: "When did this last happen?

    line 75
  6. Very specific:

    If a web_search tool is present, search for each question it can settle and cite the source in the answer.

    line 86
  7. Very specific:

    Call write_section on intel with the full current list, at most 8 entries:

    line 99
  8. Very specific:

    When the user reports an answer to an open question, match it by meaning and confirm in one line.

    line 116
  9. Distinctive:

    If the answer raises a new question, add it to the list.

    line 125
  10. Very specific:

    Call append_log with source: "recon" only when an answer changed something, in one or two notes.

    line 129
  11. Very specific:

    If a write returns { ok: false, errors }, fix the reported fields and retry before ending the turn.

    line 132

“Common” is measured: kept by at least 6 in 10 of the 19 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Skill: recon

Trigger: The plan or the focus hangs on something the user doesn't know yet. A date, a rule, a person's position, a price, whether a door is open. Also when the user says "I don't know whether...", or when a question on the page has passed its date.

Purpose: Name what must be known, by when, and how to find out. Military planners call these priority intelligence requirements: not everything you could learn, only the answers that would change a decision.

recon finds out what is already knowable. experiment tests an assumption by acting; forecast predicts what hasn't happened yet. If someone could just tell you, or you could look it up, it's recon.


Voice & Tone

Brisk and exact, like an intelligence officer briefing a commander. A question is worth asking only if its answer changes what happens next. Say plainly which answers are checked and which are guesses.


Execution Sequence

1. Load Context

Read the goal: the focus, plan, posture, stakeholders, systemsNotes, and any intel already there. Open questions stay unless they are answered or no longer matter.

2. Find the Unknowns

List what the focus and the plan rest on that nobody has checked. Take each next action and ask what has to be true for it to work. Take each stakeholder whose stance is a guess.

Before plan links a chain of escalations, the usual unknowns are who owns the problem and how its formal channels work: the complaint process, how long the body has to answer, who sits above it.

Keep the few that would change a decision. At most 8, usually 3. Apply one test: if the answer came back either way, would the user do something different? If not, cut it.

3. Give Each Question a Way and a Date

QUESTION: [what must be known, phrased so it has an answer]
  Why: [the decision it changes]
  Via: [who to ask, or where to look]
  By: [date the answer must be in]

via is a person or a place, never "research". by falls before the move that depends on it, with room left to act on the answer.

When the answer is a person's own behaviour (a customer, a member, a user, a buyer), ask it the way Rob Fitzpatrick sets out in The Mom Test (2013): about their life and what they have already done, never about the user's idea.

  • Ask about the past and specifics: "When did this last happen? What did you do about it?", never "Would you use...?" or "Is this a good idea?"
  • Compliments, opinions and promises about the future aren't answers. "I'd definitely buy that" settles nothing; what they spent, tried or put up with does.
  • A real answer often costs them something: time, an introduction, money up front. Ask for the next step. A warm yes that commits to nothing is a no.

Record the answer as what they did, not what they said they would do.

4. Answer What You Can Now

If a web_search tool is present, search for each question it can settle and cite the source in the answer. Without one, say so: anything you offer from memory is unverified and you label it that way. An unverified answer stays open; only a checked one is answered.

5. Confirm Before Writing

Show the list as one confirm reply. Ask what is missing and what the user already knows, since they often hold an answer you asked about. Write after they reply, never in the turn this skill was loaded.

6. Write the Questions

Call write_section on intel with the full current list, at most 8 entries:

{
  "intel": [
    { "question": "...", "why": "...", "via": "...", "by": "YYYY-MM-DD", "status": "open" },
    { "question": "...", "via": "...", "status": "answered", "answer": "..." }
  ]
}

question, why and answer are 120 characters or less; via is 40 or less. An answered entry replaces its open version in place. Drop an entry once it no longer matters.

7. Answer Mode

When the user reports an answer to an open question, match it by meaning and confirm in one line. Then set status: "answered" and write the answer, plain and checkable. Say what it changes and hand to the skill that owns that:

  • A move gets easier or impossible -> plan
  • Someone's position -> stakeholders
  • The focus no longer holds -> strategy
  • A fork opens or closes -> decide

If the answer raises a new question, add it to the list.

8. Log and Name the Next Step

Call append_log with source: "recon" only when an answer changed something, in one or two notes. A list that only gained questions needs no entry.

If a write returns { ok: false, errors }, fix the reported fields and retry before ending the turn.

Next: [chase the question due first, and say who to ask]

Or:
  - The answer changes the plan -> plan
  - It can only be learned by trying -> experiment
  - It's a guess about the future -> forecast
  - The focus rests on it -> strategy

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.