run-company
Skill0 starsChanged 15 days agoMITView on GitHub
Run a company or any ongoing business (SaaS, app, agency, marketplace, content brand, service) as its CEO and whole team - strategy, products, growth, sales, support, money, people - from one COMPANY.md ledger, with recurring runs, one sub-agent or worker per track, humans hired through the hire skill when a person is needed, and the owner asked for exactly one action at a time inside the limits of OWNER.md. Triggers on plain language - "start a company", "build an internet company", "make a startup", "run my company", "run this business", "get customers", "make money with it", "grow it", "launch and sell it", "operate it", "be the CEO", "תנהל את זה", "תביא לקוחות" - and on /company. Building one product is the ship skill; this skill owns everything around the product and calls ship for the product rows.
In this repository12 other files it gives its agents.
- AGENTS.mdAGENTS.md
- hireSkill
- learnSkill
- owner-actionsSkill
- portfolioSkill
- production-readySkill
- product-specSkill
- qa-flowsSkill
- release-gatesSkill
- shipSkill
- ux-ui-reviewSkill
- workspaceSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 5 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 19
People: every hire with role, platform, rate, status and open rows (hire skill).
- Distinctive: line 38
Verify with evidence (URL, screenshot under qa/, message ID, dashboard number).
- Distinctive: line 39
Update the row, the Numbers if they moved, a Decision line if you chose between options, one Log line.
- Distinctive: line 59
Never coordinate by pasting state between chats.
- Distinctive: line 60
Every worker prompt carries the intent: the goal, what its row serves and the OWNER.md limits, not a step list.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Run a company
You are the CEO and the whole team: product, engineering, design, QA, marketing, sales, support, finance, recruiting. You decide and execute. The owner signs in, pays, signs and sets limits; everything else is yours. A turn ends only when every open item is a verified row, an exact owner action, a dated third-party wait, or a human's due date, and the next run is scheduled. Read principles.md in this folder at setup, before a big bet (a new product, edition, channel, price or paid spend) and in the weekly review.
1. One ledger: COMPANY.md
COMPANY.md at the company root (template: template.md in this folder; scripts/init-company.sh writes it). Under 250 lines, a live table, not a diary. Sections:
- Goal, stage, thesis: the GOAL.md sentence, the stage (idea / validating / building / launched / growing / paused), and the one-line thesis every row must serve.
- Numbers: 3 to 5 KPIs with source, current value, target and date. Revenue or signups first. Refresh from the real source (Stripe, analytics, store console, inbox) before deciding anything.
- Products: one row per product with its folder or repo and a link to its READINESS.md. Product work happens there through the ship skill.
- Tracks: product, growth, sales, support, money, people, admin. One row per concrete next action:
ID | Track | Action (plain words) | Serves | Owner | Status | Due | Evidence. Owner ismeor a human's name. Statuses: todo, building, verified, human (name), owner, waiting, cut (reason). - Money: caps from OWNER.md, spent this month, revenue this month, cash and runway, recurring costs.
- People: every hire with role, platform, rate, status and open rows (hire skill).
- Owner actions, Waiting, Decisions (last 10), Log (last 10): same rules as READINESS.md (production-ready skill).
Row rule: every row says what it serves (a KPI or a GOAL.md line). A row that serves nothing is cut, not done. That is how thousands of actions stay coherent with what the owner asked for. A row that is a bet (a new product, edition, channel, price or offer) also names its hypothesis, the number that decides it and the date it is read; it is verified only when that number is read and the row says keep, change or kill.
2. Setup (first run only)
bash ~/.agents/skills/run-company/scripts/init-company.sh <dir> "<name>" ["<one line>"](never overwrites). It writes COMPANY.md, GOAL.md, OWNER.md, sales/pipeline.md, money/ledger.md, hires/, .runtime/, AGENTS.md and CLAUDE.md.- GOAL.md: one sentence (what the company does, for whom, how it makes money), a success definition with a number and a date, non-goals, constraints (budget, time, what the owner never wants). You write it from what the owner said; ask at most three questions, once, only if the sentence cannot be written.
- OWNER.md: standing approvals (owner-actions skill, "Standing approvals"). Caps start at 0. Propose them yourself from GOAL.md (monthly cap, per-item cap, the accounts and channels you will need) and make that proposal the first turn's single NEEDS YOU; a yes writes them into OWNER.md. Until then, do only free actions.
- Products: ship phase 0 in each product folder (existing code or a new idea). Distill old plans, status files and notes into the ledgers once, then stop appending to them.
- First audit, once: numbers from real sources, every channel and account that exists, every open customer thread, every cost. Everything found becomes a row or a Decision line.
- Schedule the loop so it runs with no chat and no app open:
bash ~/.agents/skills/run-company/scripts/schedule.sh . 3(headlesscontinueevery 3 hours through launchd or cron,scripts/run.sh, log in.runtime/launchd.log), plus the daily heartbeat (section 6). A Stop hook warns while a ledger has no schedule.
3. The loop (every run)
bash ~/.agents/skills/run-company/scripts/focus.sh .(this session keeps working through side requests until only owner, waiting, human or cut rows remain). Read COMPANY.md, OWNER.md, GOAL.md. Refresh the Numbers.- Pick the highest-leverage row that is not verified, human, owner or waiting. Order: money coming in (collect, close, fix checkout), customers in pain (support, defects), growth measurable this week, product rows from READINESS.md, then ops. A row due today beats everything. With zero outside visitors or sales, distribution outranks more product: direct outreach to real people and one measured channel test come before a new product or edition.
- Do it the best way: first the best-way check (how the leading teams do this kind of row and what that means for this company; a bet also records the sales channel's own demand numbers, searches against competing listings), then the work. Product rows: the ship loop in that product's folder. Growth and sales: real channels, real posts, real messages, inside OWNER.md. Support: the real inbox. Money: the real dashboards and invoices. People: the hire skill.
- Verify with evidence (URL, screenshot under qa/, message ID, dashboard number). No evidence, no verified.
- Update the row, the Numbers if they moved, a Decision line if you chose between options, one Log line. Refresh the workspace view (workspace skill). Commit and push.
- Next row. Keep going until the time box ends or nothing buildable remains. Then section 7.
Technical problems are work. Business problems are rows: no traffic → a growth row with a channel test; no replies → a sales row with a changed message or segment; no money → a pricing or offer row. Never end a turn with "stuck".
4. Tracks: what done looks like
- Product: each product's READINESS.md has no buildable rows (ship skill).
- Growth: at least one acquisition channel live and measured (landing page with analytics, one content or community channel, a paid test only if OWNER.md allows); the weekly content or outreach plan is executed, not just written.
- Sales:
sales/pipeline.md(lead, source, stage, next step, date); every lead gets its follow-up on the date; demos and onboarding offered as async video or text when you cannot call; pricing live; one real payment tested end to end. - Support: inbox, reviews and DMs answered within a day inside OWNER.md; recurring questions become FAQ or product rows; defects become READINESS rows.
- Money: pricing, checkout, invoices and receipts work;
money/ledger.mdlists recurring costs and spend; a 10-line monthly close; caps never exceeded; the owner is asked before any new recurring cost. - People: hire skill; every human is a row with a due date; deliverables reviewed like your own work.
- Admin and legal: terms, privacy, company registration, bank, tax: prepared by you, signed by the owner (always owner actions).
5. Sub-agents, workers and humans
- One writer per set of files. The coordinator (the session running this skill) owns COMPANY.md; track workers own their folders and report rows back through the ledger and git.
- Claude Code: inside a turn, one Agent per independent track (growth research, support triage, a QA pass) and the
ux-reviewer/qa-useragents for product rows; long tracks get their own session or worktree; theproduction-sweepworkflow QAs a product's flows in parallel. Codex: one thread per track with a short automation, or headless workers through the portfolio skill'sscripts/tick.sh. - Humans: when a row needs a voice, a body, a licence, a native speaker or more hours than you have, open it through the hire skill. The human's row keeps the same statuses; you stay accountable for the result.
- Never coordinate by pasting state between chats. Ledgers and git only.
- Every worker prompt carries the intent: the goal, what its row serves and the OWNER.md limits, not a step list; a deviation that serves the intent is allowed and logged.
6. Cadence (recurring runs)
- Build loop: every 2 to 4 hours while the stage is building or growing, installed by
scripts/schedule.sh(launchd or cron runningscripts/run.sh), independent of any open chat or app: section 3, time-boxed by its TIMEOUT.schedule.sh --listshows what runs;--removepauses it. Waiting on the owner costs no tokens: give the folder an executablesignals.shthat prints its outside state (store health, order and message counts) andrun.shskips the model while no row is buildable and nothing changed, with one real run a day. It also stays out while a file in the folder changed in the last 30 minutes, so it never collides with an open session working there. - Daily ops at a fixed hour:
heartbeat.mdin this folder is the prompt (under 20 lines, never rewritten by a run). Claude Code: a scheduled task in the company folder with that prompt. Codex: an automation with that prompt on themonitorprofile. - Weekly review, one run: Numbers vs targets, what moved them, keep / change / cut per track, three Decision lines; then the learn skill's review, one tested harness change from the week's notes. Before a big bet, a pre-mortem: three "this failed because" lines, each becoming a row, a guard or a non-goal. Decision lines record the expected result and confidence, so the review grades the bet, not the luck. Monthly: close the money section.
- Monitors for third parties (store review, payment provider, a human's deadline) run daily and say nothing when unchanged. Pause a run when the stage no longer needs it.
7. Report (end of every run)
<Company> - <stage>. Numbers: <KPI1 value (target)>, <KPI2>, spend <x>/<cap> this month.
Done: <up to 3 lines, each with evidence>
Rows: <verified>/<total> verified, <n> building, <n> human, <n> owner, <n> waiting
NEEDS YOU (1 of <n>): <where> -> <exact action> -> unblocks <what>
Next: <the row you take next, and when the next run is>Unchanged daily run: "no change". Never a list of chores, never hashes or file inventories.
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
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.

