agentleFS
ARCASSystemsARCASSystems/FounderOS/skills/readiness-check/SKILL.md

readiness-check

Skill7 starsChanged 19 days agoMITView on GitHub

Score the OS install across six buckets and name the next 3 moves. Trigger on "check my OS readiness", "how am I doing", "what's my OS state", "readiness check", "how's the system", or "where are the gaps" (or run /founder-os:status). For a full composite health report across all five checks, use /founder-os:audit instead. Returns a 0-100% score across Core, Voice and Brand, Cadence, Business Context, Brain Layer, and Queue. Read-only.

5 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

41 rules. 0 are common, 14 are distinctive, and 27 are very specific to this project.

  • 0

    Common

    Most of the 5 edited versions we read keep these.

  • 14

    Distinctive

    This author's own choices. Worth a look.

  • 27

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read-only audit of the Founder OS install.

    line 18
  2. Distinctive:

    Run end-to-end on a fresh install (mostly empty result, no crashes).

    line 21
  3. Distinctive:

    Run on a partial install (mid-completion) and produce a useful score.

    line 22
  4. Distinctive:

    Run on a fully populated install and show 80%+ readiness.

    line 23
  5. Distinctive:

    Never write to any file.

    line 25
  6. Very specific:

    Read core/identity.md and context/priorities.md.

    line 42
  7. Very specific:

    If voice profile is populated: count linkedin-post, client-update, proposal-writer, email-drafter, content-repurposer, sop-writer as …

    line 67
  8. Distinctive:

    If voice profile contains placeholders or is missing: 0 unlocked.

    line 68
  9. Very specific:

    Read the file. Look for ## Today: <YYYY-MM-DD> header.

    line 81
  10. Very specific:

    If header date == today -> 100 (current)

    line 82
  11. Very specific:

    If header date is 1-3 days old -> 60 (stale - <X> days)

    line 83
  12. Very specific:

    Look for ## Week of <YYYY-MM-DD> header.

    line 88
  13. Very specific:

    If within 6 days of today -> 100 (current)

    line 89
  14. Very specific:

    If 7-13 days old -> 50 (stale)

    line 90
  15. Very specific:

    Read context/companies.md.

    line 103
  16. Very specific:

    If context/companies.md itself is missing or has no declared businesses, score 0 and label no businesses declared.

    line 111
  17. Very specific:

    All sections empty or file missing -> 0 (empty)

    line 144
  18. Very specific:

    If founder-os-setup left deferred items, they live in core/setup-backlog.md under the ## Setup Backlog heading.

    line 150
  19. Very specific:

    If voice-profile is missing or template defaults: Run /founder-os:voice-interview - activates <N> deliverable skills.

    line 156
  20. Very specific:

    If brand-profile is missing or template defaults: Run /founder-os:brand-interview - activates branded deliverables.

    line 157
  21. Very specific:

    If identity.md is missing: Run /founder-os:setup - the OS has no idea who you are yet.

    line 158
  22. Very specific:

    If priorities.md is missing or stale: Update context/priorities.md - this week's focus is unclear.

    line 159
  23. Very specific:

    If daily-anchors is stale by 4+ days: Roll cadence/daily-anchors.md and run a weekly-review (chain).

    line 160
  24. Very specific:

    If weekly-commitments is stale by 7+ days: Say "run my weekly review" - weekly-review is a skill, not a slash command.

    line 161
  25. Very specific:

    If brain/log.md has 0 entries in last 7 days: Open brain-log skill and capture this week's signals.

    line 162
  26. Very specific:

    If a declared business has no companies/<slug>-business.md: Run business-context-loader for <slug>.

    line 163
  27. Very specific:

    If quarterly-sprints is empty: Set this quarter's focus in cadence/quarterly-sprints.md.

    line 164
  28. Very specific:

    If brain/flags.md is empty AND priorities have rolled 2+ weeks: Open Chief of Staff lens, surface stalls.

    line 165
  29. Very specific:

    If a section has no content (e.g.

    line 218
  30. Distinctive:

    Read-only. Do NOT write to any file.

    line 222
  31. Distinctive:

    Do NOT invoke other skills.

    line 223
  32. Distinctive:

    If total score is under 20, replace the NEXT 3 MOVES section content with the Day-1 starter sequence below, and replace the top line of the …

    line 224
  33. Distinctive:

    Run /founder-os:setup to walk the interactive wizard

    line 227
  34. Distinctive:

    Run /founder-os:voice-interview to capture how you write

    line 228
  35. Distinctive:

    Run /founder-os:brand-interview to capture your visual brand

    line 229
  36. Very specific:

    If core/identity.md is missing, reply with exactly this block and stop:

    line 232
  37. Very specific:

    If a file read fails (permissions, encoding, etc.), score that file as 0 and append a READ ERRORS section at the bottom of the output …

    line 247
  38. Very specific:

    If cadence/daily-anchors.md exists but the date format is unrecognised, treat it as stale and score 30.

    line 249
  39. Very specific:

    If context/companies.md exists but the format is unrecognisable as either headers or a table, count zero declared businesses and label …

    line 251
  40. Distinctive:

    Every section header is present even if its content is empty.

    line 256
  41. Distinctive:

    No em dashes or en dashes in the output.

    line 258

“Common” is measured: kept by at least 6 in 10 of the 5 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

Command: /founder-os:status (plugin install) or /status (git clone install). This folder is named readiness-check to describe what it does; the command is status because it's the natural founder-facing name.

Readiness Check

Runs on: reasoning - reads your files and reasons; any capable agent can run this.

Read-only audit of the Founder OS install. Returns a weighted score and the next 3 moves.

This skill must:

  • Run end-to-end on a fresh install (mostly empty result, no crashes).
  • Run on a partial install (mid-completion) and produce a useful score.
  • Run on a fully populated install and show 80%+ readiness.
  • Render in under 3 seconds.
  • Never write to any file.

How to score

Six buckets, each scored 0-100. Overall is the weighted average.

BucketWeightWhat it reads
Core25%core/identity.md, context/priorities.md
Voice and Brand25%core/voice-profile.yml, core/brand-profile.yml
Cadence20%cadence/daily-anchors.md, cadence/weekly-commitments.md, cadence/quarterly-sprints.md
Business Context15%context/companies.md, companies/<slug>-business.md for each declared business (operator path only; prospect files under companies/prospects/ do not count toward this bucket)
Brain Layer10%brain/log.md, brain/flags.md, brain/patterns.md
Queue5%cadence/queue.md

Core (25%)

Read core/identity.md and context/priorities.md. For each:

  • File missing -> 0.
  • File exists but contains template placeholders ({{HANDLEBARS}}, [BRACKETED], [CHOOSE: markers) on more than 30% of lines -> 20 (template defaults, not run).
  • File exists but has no real content past the headers (under 200 characters of body) -> 30 for that file.
  • File exists, content present, no template placeholders -> 100 for that file.
  • File exists, content present, but file modified more than 14 days ago (per filesystem mtime) -> mark as stale and score 60.

Bucket score = average of the two file scores.

Status labels for output:

  • populated if score >= 90
  • partial if score 30-89
  • empty if score 0-29
  • Append (stale) if file is more than 14 days old

Voice and Brand (25%)

Read core/voice-profile.yml and core/brand-profile.yml. For each:

  • File missing -> 0.
  • File exists but contains template placeholders ([CHOOSE: ...], [YOUR ...], [#XXXXXX], {{HANDLEBARS}}) on any required field -> 20 (template defaults, not run).
  • File exists, no placeholders on required fields, has real content -> 100.

Bucket score = average of the two file scores.

Also count the number of voice-coupled skills that can run with the current voice profile:

  • If voice profile is populated: count linkedin-post, client-update, proposal-writer, email-drafter, content-repurposer, sop-writer as unlocked. Plus your-voice itself.
  • If voice profile contains placeholders or is missing: 0 unlocked.

Status labels for output:

  • populated if score 100
  • template defaults if score 20
  • not run if score 0
  • For brand-profile only: partial if some fields are filled but not all

Cadence (20%)

Three files. Each scored 0-100:

cadence/daily-anchors.md:

  • Read the file. Look for ## Today: <YYYY-MM-DD> header.
  • If header date == today -> 100 (current)
  • If header date is 1-3 days old -> 60 (stale - <X> days)
  • If header date is 4+ days old -> 20 (stale - <X> days)
  • File missing or no ## Today: header -> 0 (empty)

cadence/weekly-commitments.md:

  • Look for ## Week of <YYYY-MM-DD> header.
  • If within 6 days of today -> 100 (current)
  • If 7-13 days old -> 50 (stale)
  • If 14+ days old -> 10 (stale)
  • File missing or no ## Week of header -> 0 (empty)

cadence/quarterly-sprints.md:

  • File missing or empty -> 0 (empty)
  • File has any content past template placeholders -> 100 (populated)
  • Template-defaults only -> 20

Bucket score = average of the three file scores.

Business Context (15%)

Read context/companies.md. Count the number of declared businesses (top-level ## headers naming businesses, or rows in a table - whichever pattern the file uses).

For each declared business, check whether companies/<sanitised-slug>-business.md exists and has content (the file the setup wizard and business-context-loader produce).

Prospect files at companies/prospects/<slug>.md are intentionally NOT counted in this bucket. The Business Context score measures readiness for operator workstreams (proposals, strategic analysis, client updates). Prospect tracking is its own surface and lacks a readiness metric in v1.27.

  • Score per business: 0 if context file missing, 50 if file exists but contains [FILL] placeholders, 100 if file is populated.
  • Bucket score = average across all declared businesses.
  • If context/companies.md itself is missing or has no declared businesses, score 0 and label no businesses declared.

Brain Layer (10%)

Three files:

brain/log.md:

  • Count entries in the last 14 days. Look for date-stamped entry markers (e.g. ## YYYY-MM-DD or ### YYYY-MM-DD HH:MM).
  • 0 entries -> 0
  • 1-2 entries -> 40
  • 3-9 entries -> 80
  • 10+ entries -> 100

brain/flags.md:

  • Count any entries (open or resolved).
  • 0 -> 0
  • 1+ -> 100

brain/patterns.md:

  • Count any entries past the template placeholders.
  • 0 -> 0
  • 1+ -> 100

Bucket score = average of the three file scores.

Queue (5%)

Read cadence/queue.md:

  • File missing -> 0 (not set up)
  • ACTIVE > 0 AND DONE entries present in last 7 days -> 100 (active)
  • ACTIVE > 0 but no DONE in last 7 days -> 50 (in progress)
  • ACTIVE = 0 but BACKLOG has items -> 50 (backlog only)
  • All sections empty or file missing -> 0 (empty)

DONE entries are lines in the ## DONE section with a date within the last 7 days.

Backlog (from setup wizard)

If founder-os-setup left deferred items, they live in core/setup-backlog.md under the ## Setup Backlog heading. Read that file and surface up to 3 items in the BACKLOG section of the output. If the file is missing or empty, write none recorded and skip.

Next 3 Moves logic

The next 3 moves are the highest-impact gaps. Pick in this order:

  1. If voice-profile is missing or template defaults: Run /founder-os:voice-interview - activates <N> deliverable skills.
  2. If brand-profile is missing or template defaults: Run /founder-os:brand-interview - activates branded deliverables.
  3. If identity.md is missing: Run /founder-os:setup - the OS has no idea who you are yet.
  4. If priorities.md is missing or stale: Update context/priorities.md - this week's focus is unclear.
  5. If daily-anchors is stale by 4+ days: Roll cadence/daily-anchors.md and run a weekly-review (chain).
  6. If weekly-commitments is stale by 7+ days: Say "run my weekly review" - weekly-review is a skill, not a slash command.
  7. If brain/log.md has 0 entries in last 7 days: Open brain-log skill and capture this week's signals.
  8. If a declared business has no companies/<slug>-business.md: Run business-context-loader for <slug>.
  9. If quarterly-sprints is empty: Set this quarter's focus in cadence/quarterly-sprints.md.
  10. If brain/flags.md is empty AND priorities have rolled 2+ weeks: Open Chief of Staff lens, surface stalls.

Pick the top 3 by impact (voice and identity first, then cadence, then brain). If fewer than 3 gaps, return what exists. Never invent moves.

Output template

Render this as a single fenced block. No commentary outside the block.

FOUNDER OS READINESS - <NN>%
Last checked: <YYYY-MM-DD>

CORE (<NN>%)
- identity.md           <populated | partial | empty | stale>
- priorities.md         <populated | partial | empty | stale>

VOICE AND BRAND (<NN>%)
- voice-profile.yml     <populated | template defaults | not run>
- brand-profile.yml     <populated | template defaults | not run>
- voice-coupled skills unlocked: <N>

CADENCE (<NN>%)
- daily-anchors.md      <current | stale - X days | empty>
- weekly-commitments.md <current | stale | empty>
- quarterly-sprints.md  <populated | template defaults | empty>

BUSINESS CONTEXT (<NN>%)
- declared businesses: <N>
- context files filled: <M of N>

BRAIN LAYER (<NN>%)
- log.md entries last 14d: <count>
- open flags: <count>
- patterns logged: <count>

QUEUE (<NN>%)
- active: <count>/3
- done last 7 days: <count>

BACKLOG (from setup wizard)
- <item 1>
- <item 2>
- <item 3>
| none recorded

NEXT 3 MOVES
- <highest-impact gap>
- <second>
- <third>

Replace <NN> with actual percentages. Replace <count> with actual integers. Replace <...> placeholders with the file's real status label.

If a section has no content (e.g. no businesses declared), keep the section header and write one line: none declared. Don't omit sections.

Rules

  • Read-only. Do NOT write to any file.
  • Do NOT invoke other skills.
  • If total score is under 20, replace the NEXT 3 MOVES section content with the Day-1 starter sequence below, and replace the top line of the fenced block with STATUS: Day 1 - your OS is fresh. Score will climb as you complete setup. Keep every other section header in place (mark each none recorded or its actual value).

    Day-1 NEXT 3 MOVES content:

    • Run /founder-os:setup to walk the interactive wizard
    • Run /founder-os:voice-interview to capture how you write
    • Run /founder-os:brand-interview to capture your visual brand
  • Output ONLY the fenced block. No prose around it.
  • If core/identity.md is missing, reply with exactly this block and stop:

    Founder OS not set up here. Day 1 - start with these three steps:
    1. Run /founder-os:setup to walk the interactive wizard
    2. Then /founder-os:voice-interview to capture how you write
    3. Then /founder-os:brand-interview to capture your visual brand
    
    Run /founder-os:status after each step to see your score build.
  • Total output should fit on one screen at standard terminal width (under 50 lines).
  • Render time target: under 3 seconds.

Failure handling

If a file read fails (permissions, encoding, etc.), score that file as 0 and append a READ ERRORS section at the bottom of the output naming the file. Do not crash. Do not fabricate scores.

If cadence/daily-anchors.md exists but the date format is unrecognised, treat it as stale and score 30.

If context/companies.md exists but the format is unrecognisable as either headers or a table, count zero declared businesses and label format unrecognised.

Self-check before delivering output

  1. Total score is between 0 and 100.
  2. Every section header is present even if its content is empty.
  3. The NEXT 3 MOVES section has at most 3 items, all derived from real gaps.
  4. No em dashes or en dashes in the output.
  5. Output is a single fenced block. No prose before or after.
  6. The output fits in under 50 lines.
<!-- private-tag: not applicable: readiness-check is read-only; context/ reference describes files being read, not written -->

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.