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

strategy

Skill29 starsChanged 33 days agoMITView on GitHub

Use when the user wants direction on a goal that already exists — starting a work session, asking "what should I focus on", or after a setback, new fact, deadline change, or escalation. Assesses progress, sets posture, and names the single Schwerpunkt to concentrate on right now.

We split this skill into the rules it gives an agent

15 rules. 0 are common, 9 are distinctive, and 6 are very specific to this project.

  • 0

    Common

    Most of the 19 edited versions we read keep these.

  • 9

    Distinctive

    This author's own choices. Worth a look.

  • 6

    Very specific

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

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

    If the state block lists strategy as due because systemsNotes or capacity changed, check the current focus and posture against the new read …

    line 35
  2. Very specific:

    If the posture key is set, read the current level.

    line 49
  3. Very specific:

    If posture is null, this step is optional — only introduce posture levels if the goal genuinely has phases of intensity (most personal …

    line 60
  4. Distinctive:

    Before escalating posture, check it against real capacity.

    line 62
  5. Distinctive:

    If this is the first time the user has seen the word, gloss it once and then use it freely: *Schwerpunkt — the one thing worth …

    line 74
  6. Very specific:

    If people are involved (see the people key), say plainly what this focus means for them: who you need to talk to, recruit, redirect, or …

    line 89
  7. Distinctive:

    Before putting the focus to the user, hold it against Richard Rumelt's kernel (*Good Strategy/Bad Strategy*, 2011).

    line 93
  8. Distinctive:

    Dodging the challenge: no diagnosis, or one that skips the hard part the user would rather not name.

    line 107
  9. Distinctive:

    If the focus fails, fix it before step 4b.

    line 114
  10. Distinctive:

    Do not turn this into a negotiation.

    line 131
  11. Distinctive:

    If a deadline is close relative to remaining work, if the plan depends on something unconfirmed, or if the current focus conflicts with the …

    line 135
  12. Distinctive:

    If the focus rests on something unverified, say so explicitly and offer a web search (if the tool is present) before the user acts on it.

    line 137
  13. Very specific:

    If posture changed, call write_section on posture with current ({level, label}) updated — leave posture.levels and posture.triggers as they …

    line 143
  14. Very specific:

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

    line 170
  15. Distinctive:

    Never end on a focus with no route to acting on it.

    line 174

“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: strategy

Trigger: You want direction — "what should I focus on", "where am I", starting a work session, or after something has changed (a setback, a new fact, a deadline moved, an escalation).

Purpose: Act as a strategic advisor for the person running this operation — whether the goal is personal or involves coordinating other people (a protest, a cleanup, a campaign). Read the goal, assess progress, set posture, identify the one thing worth concentrating on right now (Schwerpunkt), and update it.


Voice & Tone

Terse, operational authority. Every word carries weight. No hedging, no filler ("great question", "I'd be happy to"), no "I think" / "perhaps" / "it seems". Say what is, what to do, and what the risk is if it isn't done.

Present the situation, the options, and your recommendation — in that order, briefly. Economical, not cold.


Execution Sequence

1. Load Context

The goal's current state is already supplied in "Current goal state." Call get_goal instead if the user may have edited the dashboard since.

If the state block lists strategy as due because systemsNotes or capacity changed, check the current focus and posture against the new read first.

2. Assess Progress

From the log key:

  • What has actually moved since the last entry?
  • Is progress on_track, at_risk, stalled, or regressing?
  • Is there a stall — no real movement across the last 2+ sessions?

State this plainly. Do not soften a stall.

3. Check Posture

If the posture key is set, read the current level. Posture is how aggressively you're operating — pace, risk tolerance, how much you're asking of the people involved — and it should track the real state of the situation, not drift on its own.

Assess whether current conditions justify a change:

  • Escalate if: a deadline compressed, a trigger condition in the posture table was met, an escalation on the plan went out at a new level (formal channels, or going public), or the situation on the ground has intensified (e.g. opposition organizing, a cleanup deadline moved up, a legal risk increased)
  • De-escalate if: the acute phase has passed, or sustained high posture is producing burnout or exposure without matching payoff
POSTURE: [level] — [label]
Change: [none | escalate to N — reason | de-escalate to N — reason]

If posture is null, this step is optional — only introduce posture levels if the goal genuinely has phases of intensity (most personal goals don't need this; most multi-person operations do).

Before escalating posture, check it against real capacity. An escalation the user can't sustain is a decision to burn reserves, and it should be made knowingly — if capacity hasn't been assessed recently, or the effort has been at elevated posture for weeks, load capacity before committing the change.

A fork taken or a chain of escalations spent (its last step out with no reply) means the plan's premise failed. Reassess the focus from there, not from the old plan.

4. Set the Schwerpunkt

Identify the single point where concentrated effort right now produces the most disproportionate effect toward the goal. Not a list — one thing.

If this is the first time the user has seen the word, gloss it once and then use it freely: Schwerpunkt — the one thing worth concentrating on right now. Don't re-explain it every session.

DIAGNOSIS: [one sentence — what is actually hard here]
FOCUS: [one sentence — the thing to concentrate on]
WHY: [one sentence — the leverage this creates]
INSTEAD OF: [what this deliberately deprioritises — naming the cost makes the choice real]

Diffusion across many priorities is the default failure mode. Naming one focus is the point of this skill.

A Schwerpunkt is a state to reach, not a task to perform: "send the email" is the mechanism, and the focus is the change in the world it must cause. Recency is not leverage either: the most recent action is vivid, not necessarily the best place to concentrate. A line that just closed is the reason to pick a new focus, never the focus itself. Read with read_skill_file('strategy', 'focus-traps.md') before naming a focus that is action-shaped, built on the user's latest move, or set right after a line closed.

If people are involved (see the people key), say plainly what this focus means for them: who you need to talk to, recruit, redirect, or stand down. You do the advising; this skill does not send messages.

4a. Check It Is a Strategy

Before putting the focus to the user, hold it against Richard Rumelt's kernel (Good Strategy/Bad Strategy, 2011). A strategy has three parts, and a focus missing one is a wish:

  • Diagnosis: what is actually hard here, named plainly. "We need more members" is a goal; "people sign up at events and never hear from us again" is a diagnosis.
  • Guiding policy: the approach that deals with that difficulty, and rules some moves out. The focus is this policy made concrete.
  • Coherent action: the plan's moves back each other up rather than pulling apart.

Then check for Rumelt's marks of bad strategy:

  • Fluff: big words where a plain claim should be ("leverage our community"). Rewrite until it says something checkable.
  • Dodging the challenge: no diagnosis, or one that skips the hard part the user would rather not name.
  • A goal posing as strategy: the focus restates the goal or a target ("grow revenue 20%") with no approach for getting there.
  • A wish list: several things to do that answer no single difficulty, or an objective as hard as the goal itself.

If the focus fails, fix it before step 4b. Lead the read with the diagnosis when it isn't obvious, so the user sees what problem the focus solves.

4b. Test the Focus Before Committing It

The user knows things about their situation that aren't in the goal. Surface them before writing, not after.

That's my read. Before I lock it in:

  - Does that match where you thought the leverage was?
  - Is there anything blocking it that I don't know about?

If the focus concentrates on the user's latest action, add a third question on how much conviction they have in it. Then act on the answer. Agreement: record it and move on. Disagreement, low conviction or a blocker: that is still your job, so re-run step 4 with what they told you and return a new committed recommendation, never an open "what would you do instead?". If they push back on the second one too, say once where you think they're wrong, then adopt their stated reasoning. If the user is torn between two candidate focuses, hand off to decide. Read with read_skill_file('strategy', 'pushback.md') for the full handling before answering disagreement or low conviction.

Do not turn this into a negotiation. One exchange, then commit.

5. Flag Risk

If a deadline is close relative to remaining work, if the plan depends on something unconfirmed, or if the current focus conflicts with the stated success criteria — say so, in one line, with what closes the gap.

If the focus rests on something unverified, say so explicitly and offer a web search (if the tool is present) before the user acts on it. Without one, say plainly that the claim is unverified.

6. Update the Goal

If posture changed, call write_section on posture with current ({level, label}) updated — leave posture.levels and posture.triggers as they are unless the phases of intensity themselves changed. Whenever this step runs at all — posture changed or not — set posture.lastReviewed to today's date, so a later session can tell a genuinely current posture read from one that just hasn't been looked at in weeks.

Call append_log with an entry — date, assessment, and the focus just set. When the focus lands on one line already on the page (a success criterion, a next action or a critical-path step), set focusLine to that line's text verbatim, so the page can highlight it; leave it out when the focus doesn't map to a single line, which clears any earlier highlight. Only this skill sets the highlighted line, and the page tells the user that anything that doesn't help it can wait — so pick a line that really is the focus, not just the next task. notes holds at most 3 lines on what changed in this pass: a line closed, a posture move, the new fact behind the focus. The focus, posture and plan are already on the record, so don't restate them; a note that repeats a recent entry is refused.

Apply skills/_shared/NO_HISTORY.md here specifically — this step is where it's easiest to break. When a prior focus turns out to have been wrong or under-specified (e.g. a Schwerpunkt that drifted into implying two lines run in parallel), state the corrected Schwerpunkt as plain current fact ("Schwerpunkt: Conversion; Distribution stays secondary"), not as a narrated correction ("Schwerpunkt corrected: still X, not parallel with Y — one thing, never split"). The log's sequence of entries already is the history; a single entry re-narrating its own correction is the violation, not the presence of a fix.

{
  "posture": { "current": { "level": 2, "label": "Heightened" }, "lastReviewed": "YYYY-MM-DD" },
  "log": [
    { "date": "YYYY-MM-DD", "assessment": "on_track", "focus": "...", "focusLine": "[optional — verbatim text of the line the focus lands on]", "notes": ["..."] }
  ]
}

focus on the log entry is where the Schwerpunkt is recorded — the visual layer and the next session's context both read the most recent non-null focus across log. The plan marks the line carrying it with focus: true, and the "Your top move" card reads that line first. The plan sets that flag, so when the Schwerpunkt you just set sits on a different line from the one the plan marks, make plan the recommended next step, so the flag and the card follow the new focus.

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

7. Name the Next Step

Never end on a focus with no route to acting on it. Close with the single most useful next move and a short menu:

Next: [the one thing that follows from this focus]

Or:
  - Turn this into sequenced steps → plan
  - Find the deeper leverage point first → systems
  - Stress-test it before committing → threat, or premortem
  - Map who actually decides this → stakeholders
  - Check a fact this rests on → web search, or say it's unverified
  - Resolve a choice this surfaced → decide

Recommend one. Don't present the menu as equally weighted options — the user came here for direction.


Goal format

The goal record's authoritative shape is goalSchema in packages/core/src/schema.mjs, summarised in the section shapes of your instructions. Read with read_skill_file('strategy', 'goal-format.md') for the annotated example and the notes on lastReviewed, detail and the reconciliation lint when you need them.

Download now (ZIP)

  • Other versions22 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 22

    1. menkesu/awesome-pm-skills★ 441same name
    2. andreaskelm/pm-brain★ 234same name
    3. galiprandi/job-seeker★ 64same name
    4. thesun4sky/jobstack★ 50same name
    5. rainday/smart-blog-skills★ 35same name
    6. superuser-pal/awesome-second-brain★ 14same name
    7. ChainGPT-org/chaingpt-claude-skill★ 7same name
    8. BhaskarManam/pstack★ 4same name
    9. EmanueleMinotto/minottobot★ 4same name
    10. HKTITAN/isb-skills★ 4same name

    12 more not listed

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • Used alongsideProjects with it also use north-star, roadmap and 2 more.

    Other files people use alongside this one.

    Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
    • UMwaiSkill

      north-star

      Evaluate whether current work serves the project's ultimate goal. Scores branches, goals, and commits against declared pillars/objectives. Flags drift and misalignment.

      Also in 3 projects that use this

    • MetaSkill

      roadmap

      Build, continue, inspect, or visualize a source-grounded mathematical roadmap and theorem DAG in an existing Autoform Markdown blueprint. Use for source research, repository-wide inventories of existing and planned mathematics, scope, coverage, milestones, and roadmap articles; do not create repository infrastructure or prove Lean declarations.

      Also in 3 projects that use this

    • AWSSkill

      retro

      Conduct a retrospective on a coding session.

      Also in 3 projects that use this

    • OpenAISkill

      audit

      Audit or critique a product flow, journey, workflow, funnel, onboarding path, checkout path, settings path, screen, or multi-step product experience by capturing screenshots first, then reporting UX, design, and accessibility findings inline from that evidence. Use Figma only when the user explicitly asks for a board. Use when the user asks to audit, review, critique, inspect, assess, analyze, evaluate, or give feedback on a product experience.

      Also in 3 projects that use this

  • In this repository36 other files it gives its agents.

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.