naive-framework 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,6 +14,10 @@
14
14
  {
15
15
  "id": "choosing-artifacts",
16
16
  "path": "interface/skills/choosing-artifacts/SKILL.md"
17
+ },
18
+ {
19
+ "id": "run-playbook",
20
+ "path": "interface/skills/run-playbook/SKILL.md"
17
21
  }
18
22
  ],
19
23
  "records": [
@@ -0,0 +1,38 @@
1
+ ---
2
+ type: knowledge
3
+ tags: [everything-ecosystem, naive, skills, interface, playbooks, mentor]
4
+ ai-model: claude-opus-5.5
5
+ created: 2026-10-29T21:10:00Z
6
+ source: hybrid
7
+ name: run-playbook
8
+ description: >
9
+ Walk a founder through a Naive playbook, one step at a time, as a mentor: hold
10
+ the conversation each step describes, write what is learned as drafts the
11
+ founder confirms, and build the view each step names. Start with Torian's
12
+ playbook when a founder has a fresh venture and does not know where to start.
13
+ MANDATORY TRIGGERS: where do I start, I have a venture now what, walk me
14
+ through, playbook, Torian's playbook, help me find my idea, what should I build.
15
+ ---
16
+
17
+ # Run a playbook
18
+
19
+ Interface layer. A playbook (`purpose/playbooks/<id>.json`, shape in `schema/playbook.schema.json`) is the order of the work; a template is the empty shape of one record. Each step names its goal, how to hold the conversation, the records it writes, when it is done and the view to build.
20
+
21
+ ## Which playbook
22
+
23
+ - A fresh venture with no problem statement, or a founder who says they don't know where to start: `torians-playbook`. It starts with the founder, not the business.
24
+ - Otherwise list `purpose/playbooks/` and pick the one whose `when` fits. Say which one you chose and why.
25
+
26
+ ## How to run it
27
+
28
+ 1. Read the playbook and the venture's state first (`naive setup state`, `naive phase`). Skip a step whose records are already confirmed, and say so.
29
+ 2. One step at a time. Tell the founder which step you are on and what it is for, in a sentence.
30
+ 3. Hold the conversation the step describes. Ask one question at a time. Use the founder's words; never put words in their mouth.
31
+ 4. Write what you learn to the step's routes through Naive (`mentura_write`, the router). Agent writes land as drafts or proposals; the founder confirms them. Never mark a decision decided.
32
+ 5. Build the step's view with the `choosing-artifacts` skill, from the records you just wrote, so the founder can read and correct it.
33
+ 6. The step is done when its `done_when` holds. Then move to the next one.
34
+ 7. If the founder wants to stop, stop. The records keep where you got to; the next session reads them and picks up.
35
+
36
+ ## Torian's playbook in short
37
+
38
+ Know the founder (the puzzle of their life, after Aristotle: what they are for) → the problem that puzzle points at → the markets it lives in → the solutions that exist and how the founder feels about them → the founder decides whether to build. Dislike of every existing answer to a problem they care about is the start of a venture. Liking an existing answer is a reason to use it, not build it.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "naive-framework",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Naive, a venture development framework: conventions, routes, records, checks and an agent interface for building a venture.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -11,30 +11,58 @@
11
11
  "freshness"
12
12
  ],
13
13
  "layer": "purpose",
14
- "records": ["customer", "data-stream"],
15
- "schemas": ["schema/data-master.schema.json", "schema/stream.schema.json"],
14
+ "records": [
15
+ "customer",
16
+ "data-stream"
17
+ ],
18
+ "schemas": [
19
+ "schema/data-master.schema.json",
20
+ "schema/stream.schema.json"
21
+ ],
16
22
  "templates": [],
17
- "checks": ["schema/check-data-packages.mjs"],
18
- "skill": null,
23
+ "checks": [
24
+ "schema/check-data-packages.mjs"
25
+ ],
26
+ "skill": {
27
+ "id": "customers-function",
28
+ "path": "packages/customers/skill/SKILL.md"
29
+ },
19
30
  "use_model": [
20
31
  {
21
32
  "step": "stage",
22
33
  "kind": "choice",
23
34
  "for_each": "customers",
24
35
  "question": "Which buying stage do the notes {item.notes} put this customer at?",
25
- "inputs": ["item.notes"],
26
- "options": ["aware", "trying", "paying", "gone"],
36
+ "inputs": [
37
+ "item.notes"
38
+ ],
39
+ "options": [
40
+ "aware",
41
+ "trying",
42
+ "paying",
43
+ "gone"
44
+ ],
27
45
  "threshold": 0.7
28
46
  },
29
47
  {
30
48
  "step": "summary",
31
49
  "kind": "draft",
32
50
  "for_each": "customers",
33
- "after": ["stage"],
51
+ "after": [
52
+ "stage"
53
+ ],
34
54
  "question": "Write one plain sentence about this customer from the notes {item.notes} and the stage {steps.stage}, with the seat count written as {{seats}}.",
35
- "inputs": ["item.notes"],
36
- "computed": { "seats": { "item": "seats" } },
37
- "keep": ["seats"]
55
+ "inputs": [
56
+ "item.notes"
57
+ ],
58
+ "computed": {
59
+ "seats": {
60
+ "item": "seats"
61
+ }
62
+ },
63
+ "keep": [
64
+ "seats"
65
+ ]
38
66
  }
39
67
  ],
40
68
  "complete": false
@@ -0,0 +1,57 @@
1
+ ---
2
+ type: knowledge
3
+ tags: [everything-ecosystem, naive, skills, packages, customers, functions]
4
+ ai-model: claude-opus-5.5
5
+ created: 2026-10-29T20:45:00Z
6
+ source: ai-generated
7
+ name: customers-function
8
+ description: >
9
+ Work with the customers function of a Naive venture in code: read
10
+ and write its records through the router or MCP, know what lands as a draft
11
+ and what needs a person, run its checks, and pick the artifact each action
12
+ builds. MANDATORY TRIGGERS: customer record, CRM, customer list, customer activity, who are our customers.
13
+ ---
14
+
15
+ # Customers function
16
+
17
+ Package `packages/customers`. A venture function is a part of the venture with one accountable owner. The owner is named in `venture.json` under `functions` and in `naive.config.json`. Master data for customers: one `[id].json` each, plus append-only activity in `_streams/`. Never complete. When a CRM is the system of record, records are pointers and summaries.
18
+
19
+ ## Records
20
+
21
+ | Route | What it is | Record type |
22
+ |---|---|---|
23
+ | `customers` | List of customer master records | `customer` |
24
+ | `customers/[id]` | One customer master record | `customer` |
25
+ | `purpose/data-stream/[id]` | Declares one append-only stream and whether it is sensitive | `data-stream` |
26
+
27
+ The schemas are listed in `packages/customers/package.json`. Call `mentura_layout` with a route to get its schema, template, gate and what need-now says before you act.
28
+
29
+ ## Read and write
30
+
31
+ - Over MCP: `mentura_read` with `venture` and `route` (for example `customers`). Pass `header_only` to see state and owner first. `mentura_write` with the whole `record`, and say what it came from and the decision it acts under.
32
+ - In a shell inside the venture: `naive mcp` serves the same routes; `mentura routes` lists them.
33
+ - Read through Naive, never from memory. A missing, draft or stale record is shown as such, never filled in.
34
+ - Every write is checked against its schema and logged in `system/provenance`.
35
+
36
+ ## Draft or person
37
+
38
+ Customer records have no escalating class, so an agent's write is the record, logged in provenance. Streams are append-only: add lines, never rewrite them. A sensitive stream stays out of model context; read its summary. If `knowledge/sources.json` names a CRM, write a pointer, not a copy.
39
+
40
+ Open decisions for this function come from `mentura_decisions`. Propose with `mentura_propose_decision`; you never mark a decision decided.
41
+
42
+ ## Checks
43
+
44
+ `naive check` runs every check that applies to the venture. For this function: `schema/check-data-packages.mjs`: coverage and freshness, not completeness. Run it after each write, and fix a failure before you report the work done.
45
+
46
+ ## Actions and artifacts
47
+
48
+ Build artifacts by the `choosing-artifacts` skill (`interface/skills/choosing-artifacts/SKILL.md`). Each artifact names the records it was built from.
49
+
50
+ | Action | Artifact | Built from |
51
+ |---|---|---|
52
+ | Review accounts | Dashboard | customers/ |
53
+ | Prepare for a customer call | Document | customers/[id] and its stream |
54
+
55
+ ## Depends on
56
+
57
+ Feeds validation evidence (interviews, retention) and marketing audiences. Reads nothing it does not own.
@@ -43,6 +43,9 @@
43
43
  "schemas": [],
44
44
  "templates": [],
45
45
  "checks": [],
46
- "skill": null,
46
+ "skill": {
47
+ "id": "finance-function",
48
+ "path": "packages/finance/skill/SKILL.md"
49
+ },
47
50
  "use_model": []
48
51
  }
@@ -0,0 +1,57 @@
1
+ ---
2
+ type: knowledge
3
+ tags: [everything-ecosystem, naive, skills, packages, finance, functions]
4
+ ai-model: claude-opus-5.5
5
+ created: 2026-10-29T20:45:00Z
6
+ source: ai-generated
7
+ name: finance-function
8
+ description: >
9
+ Work with the finance function of a Naive venture in code: read
10
+ and write its records through the router or MCP, know what lands as a draft
11
+ and what needs a person, run its checks, and pick the artifact each action
12
+ builds. MANDATORY TRIGGERS: business model, pricing, budget, runway, how do we make money, unit economics.
13
+ ---
14
+
15
+ # Finance function
16
+
17
+ Package `packages/finance`. A venture function is a part of the venture with one accountable owner. The owner is named in `venture.json` under `functions` and in `naive.config.json`. How the venture makes and spends money: business models, pricing, budget and runway.
18
+
19
+ ## Records
20
+
21
+ | Route | What it is | Record type |
22
+ |---|---|---|
23
+ | `business-models` | The business models the venture uses (a system record from `schema/vocab/business-models.json`; no route of its own yet, so read it through `mentura_layout`) | `business-models` |
24
+ | `validation/pricing` | Price model, points, buyer and evidence they pay (owned by validation, read here) | `validation-pricing` |
25
+ | `purpose/money/summary` | Cash, monthly flows and runway (owned by money, read here) | `money-summary` |
26
+
27
+ The schemas are listed in `packages/finance/package.json`. Call `mentura_layout` with a route to get its schema, template, gate and what need-now says before you act.
28
+
29
+ ## Read and write
30
+
31
+ - Over MCP: `mentura_read` with `venture` and `route` (for example `business-models`). Pass `header_only` to see state and owner first. `mentura_write` with the whole `record`, and say what it came from and the decision it acts under.
32
+ - In a shell inside the venture: `naive mcp` serves the same routes; `mentura routes` lists them.
33
+ - Read through Naive, never from memory. A missing, draft or stale record is shown as such, never filled in.
34
+ - Every write is checked against its schema and logged in `system/provenance`.
35
+
36
+ ## Draft or person
37
+
38
+ Finance has no record of its own that an agent may settle. Pricing changes go through validation; money facts come from the money source. Propose a budget or model with `mentura_propose_decision`; a person decides.
39
+
40
+ Open decisions for this function come from `mentura_decisions`. Propose with `mentura_propose_decision`; you never mark a decision decided.
41
+
42
+ ## Checks
43
+
44
+ `naive check` runs every check that applies to the venture. For this function: No checks of its own yet. `naive check` covers the records it reads (validation and money checks). Run it after each write, and fix a failure before you report the work done.
45
+
46
+ ## Actions and artifacts
47
+
48
+ Build artifacts by the `choosing-artifacts` skill (`interface/skills/choosing-artifacts/SKILL.md`). Each artifact names the records it was built from.
49
+
50
+ | Action | Artifact | Built from |
51
+ |---|---|---|
52
+ | Show runway, burn, revenue | Dashboard | money/ and purpose/money/summary |
53
+ | Build a model or budget | File (.xlsx) when asked, else dashboard | money/, validation/pricing |
54
+
55
+ ## Depends on
56
+
57
+ Reads `validation/pricing` and `product`. Owns money master data through its owner: an agent's money write goes to the finance owner first (money's gate rule).
@@ -47,7 +47,10 @@
47
47
  "schema/check-validation.mjs",
48
48
  "schema/foundation.mjs"
49
49
  ],
50
- "skill": null,
50
+ "skill": {
51
+ "id": "foundation-function",
52
+ "path": "packages/foundation/skill/SKILL.md"
53
+ },
51
54
  "use_model": [],
52
55
  "use_cache": [
53
56
  {
@@ -0,0 +1,60 @@
1
+ ---
2
+ type: knowledge
3
+ tags: [everything-ecosystem, naive, skills, packages, foundation, functions]
4
+ ai-model: claude-opus-5.5
5
+ created: 2026-10-29T20:45:00Z
6
+ source: ai-generated
7
+ name: foundation-function
8
+ description: >
9
+ Work with the foundation function of a Naive venture in code: read
10
+ and write its records through the router or MCP, know what lands as a draft
11
+ and what needs a person, run its checks, and pick the artifact each action
12
+ builds. MANDATORY TRIGGERS: our problem statement, who is our customer, ICP, telos, why do we exist, principles, alignment, strategic foundation.
13
+ ---
14
+
15
+ # Foundation function
16
+
17
+ Package `packages/foundation`. A venture function is a part of the venture with one accountable owner. The owner is named in `venture.json` under `functions` and in `naive.config.json`. What the venture is, why, for whom and with what. Every other function reads these records, so they change rarely and only by a person.
18
+
19
+ ## Records
20
+
21
+ | Route | What it is | Record type |
22
+ |---|---|---|
23
+ | `foundation/problem` | The problem claim and its graded evidence | `validation-problem` |
24
+ | `foundation/icp` | Who the venture serves; one primary profile | `icp` |
25
+ | `foundation/telos` | The end the venture exists to reach, with exit criteria per phase | `telos` |
26
+ | `foundation/alignment` | How products and agents must behave | `alignment` |
27
+ | `knowledge/venture-profile` | The story and thesis in prose (read only) | `venture-profile` |
28
+ | `purpose/foundation` | Command: the Five Ws and How, each confirmed, drafted, waiting or missing | command or item |
29
+
30
+ The schemas are listed in `packages/foundation/package.json`. Call `mentura_layout` with a route to get its schema, template, gate and what need-now says before you act.
31
+
32
+ ## Read and write
33
+
34
+ - Over MCP: `mentura_read` with `venture` and `route` (for example `foundation/problem`). Pass `header_only` to see state and owner first. `mentura_write` with the whole `record`, and say what it came from and the decision it acts under.
35
+ - In a shell inside the venture: `naive mcp` serves the same routes; `mentura routes` lists them.
36
+ - Read through Naive, never from memory. A missing, draft or stale record is shown as such, never filled in.
37
+ - Every write is checked against its schema and logged in `system/provenance`.
38
+
39
+ ## Draft or person
40
+
41
+ All four foundation records carry the strategy-or-constitution decision class. An agent's write always lands as a draft in `_drafts/`. Only the founder accepts it. Never present a draft as the founder's words.
42
+
43
+ Open decisions for this function come from `mentura_decisions`. Propose with `mentura_propose_decision`; you never mark a decision decided.
44
+
45
+ ## Checks
46
+
47
+ `naive check` runs every check that applies to the venture. For this function: `schema/check-telos.mjs`, `schema/check-validation.mjs`, `schema/foundation.mjs` and the schema checks (`schema/validate.py`). Run it after each write, and fix a failure before you report the work done.
48
+
49
+ ## Actions and artifacts
50
+
51
+ Build artifacts by the `choosing-artifacts` skill (`interface/skills/choosing-artifacts/SKILL.md`). Each artifact names the records it was built from.
52
+
53
+ | Action | Artifact | Built from |
54
+ |---|---|---|
55
+ | Review the strategic foundation | Document (brief) | foundation/*, the phase in venture.json |
56
+ | Decide pending decisions | Page that collects answers (the docket) | decisions/ |
57
+
58
+ ## Depends on
59
+
60
+ Reads `product` (which product the foundation is about). Read by every other function: validation, product, marketing, people, finance and the handoffs. A change here marks dependents stale; run `system/revalidate` with `tag:foundation/icp` (or the route you changed).
@@ -11,11 +11,20 @@
11
11
  "freshness"
12
12
  ],
13
13
  "layer": "purpose",
14
- "records": ["investor"],
15
- "schemas": ["schema/data-master.schema.json"],
14
+ "records": [
15
+ "investor"
16
+ ],
17
+ "schemas": [
18
+ "schema/data-master.schema.json"
19
+ ],
16
20
  "templates": [],
17
- "checks": ["schema/check-data-packages.mjs"],
18
- "skill": null,
21
+ "checks": [
22
+ "schema/check-data-packages.mjs"
23
+ ],
24
+ "skill": {
25
+ "id": "investors-function",
26
+ "path": "packages/investors/skill/SKILL.md"
27
+ },
19
28
  "use_model": [],
20
29
  "complete": false
21
30
  }
@@ -0,0 +1,57 @@
1
+ ---
2
+ type: knowledge
3
+ tags: [everything-ecosystem, naive, skills, packages, investors, functions]
4
+ ai-model: claude-opus-5.5
5
+ created: 2026-10-29T20:45:00Z
6
+ source: ai-generated
7
+ name: investors-function
8
+ description: >
9
+ Work with the investors function of a Naive venture in code: read
10
+ and write its records through the router or MCP, know what lands as a draft
11
+ and what needs a person, run its checks, and pick the artifact each action
12
+ builds. MANDATORY TRIGGERS: investor list, fundraising pipeline, investor update, who has invested, cap table contacts.
13
+ ---
14
+
15
+ # Investors function
16
+
17
+ Package `packages/investors`. A venture function is a part of the venture with one accountable owner. The owner is named in `venture.json` under `functions` and in `naive.config.json`. Master data for investors: one `[id].json` each, plus append-only activity in `_streams/`. Never complete.
18
+
19
+ ## Records
20
+
21
+ | Route | What it is | Record type |
22
+ |---|---|---|
23
+ | `investors` | List of investor master records | `investor` |
24
+ | `investors/[id]` | One investor master record | `investor` |
25
+ | `purpose/data-stream/[id]` | The investor activity streams | `data-stream` |
26
+
27
+ The schemas are listed in `packages/investors/package.json`. Call `mentura_layout` with a route to get its schema, template, gate and what need-now says before you act.
28
+
29
+ ## Read and write
30
+
31
+ - Over MCP: `mentura_read` with `venture` and `route` (for example `investors`). Pass `header_only` to see state and owner first. `mentura_write` with the whole `record`, and say what it came from and the decision it acts under.
32
+ - In a shell inside the venture: `naive mcp` serves the same routes; `mentura routes` lists them.
33
+ - Read through Naive, never from memory. A missing, draft or stale record is shown as such, never filled in.
34
+ - Every write is checked against its schema and logged in `system/provenance`.
35
+
36
+ ## Draft or person
37
+
38
+ Investor records have no escalating class, so an agent's write is the record, logged in provenance. Terms and ownership live in `governance/ownership`, which a person decides; never record a commitment here that the cap table does not show.
39
+
40
+ Open decisions for this function come from `mentura_decisions`. Propose with `mentura_propose_decision`; you never mark a decision decided.
41
+
42
+ ## Checks
43
+
44
+ `naive check` runs every check that applies to the venture. For this function: `schema/check-data-packages.mjs`: coverage and freshness. Run it after each write, and fix a failure before you report the work done.
45
+
46
+ ## Actions and artifacts
47
+
48
+ Build artifacts by the `choosing-artifacts` skill (`interface/skills/choosing-artifacts/SKILL.md`). Each artifact names the records it was built from.
49
+
50
+ | Action | Artifact | Built from |
51
+ |---|---|---|
52
+ | Pitch or investor update | Deck | foundation/, evidence/ (traction) and purpose/money/summary |
53
+ | Track the raise | Dashboard | investors/ |
54
+
55
+ ## Depends on
56
+
57
+ Reads foundation, evidence and money summaries for updates. Feeds the investor handoff and `governance/ownership`.
@@ -58,6 +58,9 @@
58
58
  "schema/check-brand.mjs",
59
59
  "schema/check-assets.mjs"
60
60
  ],
61
- "skill": null,
61
+ "skill": {
62
+ "id": "marketing-function",
63
+ "path": "packages/marketing/skill/SKILL.md"
64
+ },
62
65
  "use_model": []
63
66
  }
@@ -0,0 +1,61 @@
1
+ ---
2
+ type: knowledge
3
+ tags: [everything-ecosystem, naive, skills, packages, marketing, functions]
4
+ ai-model: claude-opus-5.5
5
+ created: 2026-10-29T20:45:00Z
6
+ source: ai-generated
7
+ name: marketing-function
8
+ description: >
9
+ Work with the marketing function of a Naive venture in code: read
10
+ and write its records through the router or MCP, know what lands as a draft
11
+ and what needs a person, run its checks, and pick the artifact each action
12
+ builds. MANDATORY TRIGGERS: sitemap, landing page, brand, voice, public content, marketing site, ads, campaigns.
13
+ ---
14
+
15
+ # Marketing function
16
+
17
+ Package `packages/marketing`. A venture function is a part of the venture with one accountable owner. The owner is named in `venture.json` under `functions` and in `naive.config.json`. Who the site and campaigns speak to, what goes where and why, the brand, the public variants and the pipeline.
18
+
19
+ ## Records
20
+
21
+ | Route | What it is | Record type |
22
+ |---|---|---|
23
+ | `marketing/sitemap` | The planned public site, page by page | `marketing-sitemap` |
24
+ | `marketing/content` | Public variants of internal records, as MDX (read through the router; write the files) | `marketing-content` |
25
+ | `marketing/brand` | Brand tokens, type, voice and marks | `marketing-brand` |
26
+ | `marketing/brand/tokens` | Command: the brand as design tokens and CSS | command or item |
27
+ | `marketing/voice` | Command: content held to the voice rules | command or item |
28
+ | `operations/marketing/public` | Command: the public gate | command or item |
29
+
30
+ The schemas are listed in `packages/marketing/package.json`. Call `mentura_layout` with a route to get its schema, template, gate and what need-now says before you act.
31
+
32
+ ## Read and write
33
+
34
+ - Over MCP: `mentura_read` with `venture` and `route` (for example `marketing/sitemap`). Pass `header_only` to see state and owner first. `mentura_write` with the whole `record`, and say what it came from and the decision it acts under.
35
+ - In a shell inside the venture: `naive mcp` serves the same routes; `mentura routes` lists them.
36
+ - Read through Naive, never from memory. A missing, draft or stale record is shown as such, never filled in.
37
+ - Every write is checked against its schema and logged in `system/provenance`.
38
+
39
+ ## Draft or person
40
+
41
+ `marketing/brand` carries the experience-design decision class, so an agent's write is a draft a person accepts. Every content file passes the public gate: it names its internal record and audience, and a published file needs a person's approval. Never mark content published yourself.
42
+
43
+ Open decisions for this function come from `mentura_decisions`. Propose with `mentura_propose_decision`; you never mark a decision decided.
44
+
45
+ ## Checks
46
+
47
+ `naive check` runs every check that applies to the venture. For this function: `schema/check-brand.mjs`, `schema/check-assets.mjs` and the public gate (`operations/marketing/public`). Run it after each write, and fix a failure before you report the work done.
48
+
49
+ ## Actions and artifacts
50
+
51
+ Build artifacts by the `choosing-artifacts` skill (`interface/skills/choosing-artifacts/SKILL.md`). Each artifact names the records it was built from.
52
+
53
+ | Action | Artifact | Built from |
54
+ |---|---|---|
55
+ | Draft a landing page or ad | Design | marketing/brand and positioning |
56
+ | Set up the brand | Design system | marketing/brand |
57
+ | Plan content | Document | marketing/sitemap and content records |
58
+
59
+ ## Depends on
60
+
61
+ Reads `foundation/icp` and `product`. Hands the sitemap and brand to engineering. Publishes only under `governance/publication-policy`.
@@ -36,7 +36,10 @@
36
36
  "checks": [
37
37
  "schema/check-data-packages.mjs"
38
38
  ],
39
- "skill": null,
39
+ "skill": {
40
+ "id": "money-function",
41
+ "path": "packages/money/skill/SKILL.md"
42
+ },
40
43
  "use_model": [],
41
44
  "complete": false
42
45
  }
@@ -0,0 +1,57 @@
1
+ ---
2
+ type: knowledge
3
+ tags: [everything-ecosystem, naive, skills, packages, money, functions]
4
+ ai-model: claude-opus-5.5
5
+ created: 2026-10-29T20:45:00Z
6
+ source: ai-generated
7
+ name: money-function
8
+ description: >
9
+ Work with the money function of a Naive venture in code: read
10
+ and write its records through the router or MCP, know what lands as a draft
11
+ and what needs a person, run its checks, and pick the artifact each action
12
+ builds. MANDATORY TRIGGERS: bank account, cash, burn, runway numbers, transactions, money summary.
13
+ ---
14
+
15
+ # Money function
16
+
17
+ Package `packages/money`. A venture function is a part of the venture with one accountable owner. The owner is named in `venture.json` under `functions` and in `naive.config.json`. Master data for money: one `[id].json` per account, plus append-only activity in `_streams/`. When a bank or spend tool is the system of record, records are pointers and summaries.
18
+
19
+ ## Records
20
+
21
+ | Route | What it is | Record type |
22
+ |---|---|---|
23
+ | `money` | List of money accounts | `money-account` |
24
+ | `money/[id]` | One money account | `money-account` |
25
+ | `purpose/money/summary` | Cash, monthly flows and runway from the last sync; the only money record a model sees | `money-summary` |
26
+
27
+ The schemas are listed in `packages/money/package.json`. Call `mentura_layout` with a route to get its schema, template, gate and what need-now says before you act.
28
+
29
+ ## Read and write
30
+
31
+ - Over MCP: `mentura_read` with `venture` and `route` (for example `money`). Pass `header_only` to see state and owner first. `mentura_write` with the whole `record`, and say what it came from and the decision it acts under.
32
+ - In a shell inside the venture: `naive mcp` serves the same routes; `mentura routes` lists them.
33
+ - Read through Naive, never from memory. A missing, draft or stale record is shown as such, never filled in.
34
+ - Every write is checked against its schema and logged in `system/provenance`.
35
+
36
+ ## Draft or person
37
+
38
+ The gate rule `money-to-finance`: money master data an agent writes goes to the finance function's owner before it is the record. Read `purpose/money/summary`, never raw transactions. Never move money or enter account numbers.
39
+
40
+ Open decisions for this function come from `mentura_decisions`. Propose with `mentura_propose_decision`; you never mark a decision decided.
41
+
42
+ ## Checks
43
+
44
+ `naive check` runs every check that applies to the venture. For this function: `schema/check-data-packages.mjs`: coverage and freshness. Run it after each write, and fix a failure before you report the work done.
45
+
46
+ ## Actions and artifacts
47
+
48
+ Build artifacts by the `choosing-artifacts` skill (`interface/skills/choosing-artifacts/SKILL.md`). Each artifact names the records it was built from.
49
+
50
+ | Action | Artifact | Built from |
51
+ |---|---|---|
52
+ | Show runway, burn, revenue | Dashboard | purpose/money/summary |
53
+ | Build a model or budget | File (.xlsx) when asked, else dashboard | purpose/money/summary and validation/pricing |
54
+
55
+ ## Depends on
56
+
57
+ Read by finance and investors. Its owner is the finance function's owner.
@@ -59,6 +59,9 @@
59
59
  "schema/check-governance.mjs",
60
60
  "schema/check-team.mjs"
61
61
  ],
62
- "skill": null,
62
+ "skill": {
63
+ "id": "people-function",
64
+ "path": "packages/people/skill/SKILL.md"
65
+ },
63
66
  "use_model": []
64
67
  }
@@ -0,0 +1,59 @@
1
+ ---
2
+ type: knowledge
3
+ tags: [everything-ecosystem, naive, skills, packages, people, functions]
4
+ ai-model: claude-opus-5.5
5
+ created: 2026-10-29T20:45:00Z
6
+ source: ai-generated
7
+ name: people-function
8
+ description: >
9
+ Work with the people function of a Naive venture in code: read
10
+ and write its records through the router or MCP, know what lands as a draft
11
+ and what needs a person, run its checks, and pick the artifact each action
12
+ builds. MANDATORY TRIGGERS: team, cofounder, hire, team plan, founder agreement, who owns what, hats, roles.
13
+ ---
14
+
15
+ # People function
16
+
17
+ Package `packages/people`. A venture function is a part of the venture with one accountable owner. The owner is named in `venture.json` under `functions` and in `naive.config.json`. Who the venture needs, what each person brings and on what terms people join.
18
+
19
+ ## Records
20
+
21
+ | Route | What it is | Record type |
22
+ |---|---|---|
23
+ | `people` | Each person's role and hats | `people` |
24
+ | `people/founders/[id]` | One file per founder | command or item |
25
+ | `people/team` | Validation sub-score: skills needed, held and the gaps | `validation-team` |
26
+ | `people/team-plan` | Who the venture needs, agent or person, when and with what authority | `team-plan` |
27
+ | `governance/founder-agreement` | Roles, commitment, IP, departure, deadlock | `founder-agreement` |
28
+
29
+ The schemas are listed in `packages/people/package.json`. Call `mentura_layout` with a route to get its schema, template, gate and what need-now says before you act.
30
+
31
+ ## Read and write
32
+
33
+ - Over MCP: `mentura_read` with `venture` and `route` (for example `people`). Pass `header_only` to see state and owner first. `mentura_write` with the whole `record`, and say what it came from and the decision it acts under.
34
+ - In a shell inside the venture: `naive mcp` serves the same routes; `mentura routes` lists them.
35
+ - Read through Naive, never from memory. A missing, draft or stale record is shown as such, never filled in.
36
+ - Every write is checked against its schema and logged in `system/provenance`.
37
+
38
+ ## Draft or person
39
+
40
+ The founder agreement carries the ownership-or-control decision class: an agent's write is always a draft, and only the founders accept it. Never fill in equity, vesting or departure terms. The team plan sets who may read and write which routes (`system/robots`), so treat a change to it as a person's decision.
41
+
42
+ Open decisions for this function come from `mentura_decisions`. Propose with `mentura_propose_decision`; you never mark a decision decided.
43
+
44
+ ## Checks
45
+
46
+ `naive check` runs every check that applies to the venture. For this function: `schema/check-validation.mjs` (team), `schema/check-governance.mjs` and `schema/check-team.mjs`. Run it after each write, and fix a failure before you report the work done.
47
+
48
+ ## Actions and artifacts
49
+
50
+ Build artifacts by the `choosing-artifacts` skill (`interface/skills/choosing-artifacts/SKILL.md`). Each artifact names the records it was built from.
51
+
52
+ | Action | Artifact | Built from |
53
+ |---|---|---|
54
+ | Plan the team or a hire | Document | people/team-plan, people/team |
55
+ | Show who owns which function | Page with a diagram | people, venture.json functions |
56
+
57
+ ## Depends on
58
+
59
+ Read by the cofounder and counsel handoffs. Function owners in venture.json and `naive.config.json` come from here, and every gate that names an owner depends on it.
@@ -44,6 +44,9 @@
44
44
  "checks": [
45
45
  "schema/check-ventures.mjs"
46
46
  ],
47
- "skill": null,
47
+ "skill": {
48
+ "id": "product-function",
49
+ "path": "packages/product/skill/SKILL.md"
50
+ },
48
51
  "use_model": []
49
52
  }
@@ -0,0 +1,59 @@
1
+ ---
2
+ type: knowledge
3
+ tags: [everything-ecosystem, naive, skills, packages, product, functions]
4
+ ai-model: claude-opus-5.5
5
+ created: 2026-10-29T20:45:00Z
6
+ source: ai-generated
7
+ name: product-function
8
+ description: >
9
+ Work with the product function of a Naive venture in code: read
10
+ and write its records through the router or MCP, know what lands as a draft
11
+ and what needs a person, run its checks, and pick the artifact each action
12
+ builds. MANDATORY TRIGGERS: product card, what do we offer, flagship, wedge, substrate, spec, roadmap, product anatomy.
13
+ ---
14
+
15
+ # Product function
16
+
17
+ Package `packages/product`. A venture function is a part of the venture with one accountable owner. The owner is named in `venture.json` under `functions` and in `naive.config.json`. What the venture offers, each product's role (flagship, substrate, wedge) and to whom.
18
+
19
+ ## Records
20
+
21
+ | Route | What it is | Record type |
22
+ |---|---|---|
23
+ | `product` | List of product cards | `product` |
24
+ | `product/[id]` | One product card | `product` |
25
+ | `product/anatomy-answers` | Product Anatomy scores per question (read only) | `anatomy-answers` |
26
+ | `product/anatomy/[id]` | Product Anatomy input for one product (read only) | command or item |
27
+
28
+ The schemas are listed in `packages/product/package.json`. Call `mentura_layout` with a route to get its schema, template, gate and what need-now says before you act.
29
+
30
+ ## Read and write
31
+
32
+ - Over MCP: `mentura_read` with `venture` and `route` (for example `product`). Pass `header_only` to see state and owner first. `mentura_write` with the whole `record`, and say what it came from and the decision it acts under.
33
+ - In a shell inside the venture: `naive mcp` serves the same routes; `mentura routes` lists them.
34
+ - Read through Naive, never from memory. A missing, draft or stale record is shown as such, never filled in.
35
+ - Every write is checked against its schema and logged in `system/provenance`.
36
+
37
+ ## Draft or person
38
+
39
+ Product cards have no escalating decision class, so an agent's write is the record, logged in provenance. The package still gates completion: a person must confirm every required record before the engineering handoff opens. Specs and roadmap are planned, not records yet; write them as proposals.
40
+
41
+ Open decisions for this function come from `mentura_decisions`. Propose with `mentura_propose_decision`; you never mark a decision decided.
42
+
43
+ ## Checks
44
+
45
+ `naive check` runs every check that applies to the venture. For this function: `schema/check-ventures.mjs` and the product schema (`schema/product.schema.json`). The `check` action on `product/[id]` runs it for one card. Run it after each write, and fix a failure before you report the work done.
46
+
47
+ ## Actions and artifacts
48
+
49
+ Build artifacts by the `choosing-artifacts` skill (`interface/skills/choosing-artifacts/SKILL.md`). Each artifact names the records it was built from.
50
+
51
+ | Action | Artifact | Built from |
52
+ |---|---|---|
53
+ | Write a spec or roadmap | Document | product/ and decisions/ |
54
+ | Show a flow or architecture | Page with a diagram | product/ |
55
+ | Prototype a screen | Design | product specs |
56
+
57
+ ## Depends on
58
+
59
+ Reads `foundation/icp`. Read by foundation, validation, marketing and finance. Unlocks the engineering handoff: build what is specified.
@@ -29,7 +29,8 @@
29
29
  "idea-dump",
30
30
  "idea-map",
31
31
  "idea-map-conventions",
32
- "idea-graph"
32
+ "idea-graph",
33
+ "playbook"
33
34
  ],
34
35
  "reads": [
35
36
  "venture",
@@ -0,0 +1,80 @@
1
+ {
2
+ "id": "torians-playbook",
3
+ "title": "Torian's playbook: from your life's puzzle to a venture",
4
+ "purpose": "A founder with a fresh venture and no idea where to start ends with a founder profile, a problem their life points at, the markets around it, what already solves it and how they feel about that: the start of a venture worth building.",
5
+ "when": "Offer it right after create-venture when the founder has no problem statement yet, or says they don't know where to start.",
6
+ "function": "foundation",
7
+ "phase": "discovery",
8
+ "sources": ["Aristotle, Nicomachean Ethics: the good life as the work a person is for (ergon) and its end (telos)", "Mentorship as questions, not answers"],
9
+ "steps": [
10
+ {
11
+ "id": "know-the-founder",
12
+ "title": "Get to know the founder",
13
+ "goal": "The puzzle of the founder's life: what they keep turning over, what they are passionate about, what they are for, what they want to become.",
14
+ "conversation": [
15
+ "Act as a mentor, not an interviewer. Ask one question at a time and follow what they say.",
16
+ "Start with their life, not with business: what problem have you kept coming back to for years? What do people come to you for? What makes you angry about how things are done?",
17
+ "Ask what a good life looks like for them in ten years, and what they would do if money were settled.",
18
+ "Reflect back the pattern you hear in their own words, and ask whether you have it right. Never name their passion for them.",
19
+ "Keep it in the founder's words. Do not judge whether it could be a business yet."
20
+ ],
21
+ "writes": [{ "route": "people/founders/[id]", "as": "draft", "note": "the profile: puzzles, passions, telos, ambitions, strengths, values" }],
22
+ "done_when": "The founder confirms their profile reads true.",
23
+ "artifact": "Document: the founder profile, for them to correct"
24
+ },
25
+ {
26
+ "id": "find-the-problem",
27
+ "title": "Find the problem their puzzle points at",
28
+ "goal": "A real problem in the world that the founder's puzzle is oriented towards, and who has it.",
29
+ "conversation": [
30
+ "From the profile, ask who else lives with the puzzle they described, and what it costs those people.",
31
+ "Push for a specific person and a specific moment: who, when, what goes wrong, what they do today instead.",
32
+ "Separate the founder's own pain from other people's: is this a problem many people have, or one person's?",
33
+ "Name what is still a guess. A problem is a hypothesis until evidence backs it."
34
+ ],
35
+ "writes": [{ "route": "foundation/problem", "as": "draft" }],
36
+ "done_when": "The founder confirms a problem statement with a segment and at least one piece of evidence or a plan to get it.",
37
+ "artifact": "Document: the problem statement"
38
+ },
39
+ {
40
+ "id": "map-the-markets",
41
+ "title": "Map the markets they are drawn to",
42
+ "goal": "The markets where that problem lives, and which ones the founder is drawn to.",
43
+ "conversation": [
44
+ "List the places the problem shows up (industries, kinds of customers, settings) and ask which ones the founder cares about and why.",
45
+ "Look things up rather than guess, and bring back sources. Research comes back as evidence, not fact.",
46
+ "Note which markets the founder has an unfair advantage in: access, knowledge, people they know."
47
+ ],
48
+ "writes": [{ "route": "evidence/[id]", "as": "evidence", "note": "one record per market looked at, with its sources" }],
49
+ "done_when": "The founder has picked one or two markets to look at first.",
50
+ "artifact": "Page with a diagram: the problem and the markets around it"
51
+ },
52
+ {
53
+ "id": "meet-the-solutions",
54
+ "title": "Meet the solutions that already exist",
55
+ "goal": "What already solves the problem in those markets, and how the founder feels about each one. This is competitive research the founder lives through.",
56
+ "conversation": [
57
+ "Find the existing solutions, including the workarounds people use today, and show each with its source.",
58
+ "Ask how the founder feels about each one, not what they think of it as a business: would they use it, recommend it, be proud to have made it?",
59
+ "Listen for dissatisfaction. A founder who dislikes every existing answer to a problem they care about has found the start of a venture.",
60
+ "If an existing solution is good and they like it, say so. That is a reason to join or use it, not to build."
61
+ ],
62
+ "writes": [{ "route": "evidence/[id]", "as": "evidence", "note": "each solution, with sources and the founder's reaction" }],
63
+ "done_when": "Every solution the founder named has their reaction recorded.",
64
+ "artifact": "Document: the solutions and the founder's reactions, side by side"
65
+ },
66
+ {
67
+ "id": "decide-to-build",
68
+ "title": "Decide whether this is a venture",
69
+ "goal": "The founder's own decision: build a better answer to this problem, look further, or stop.",
70
+ "conversation": [
71
+ "Lay out what was learned: the puzzle, the problem, the markets, the solutions and how they felt.",
72
+ "Ask the founder to decide. Propose the decision with the options; never make it.",
73
+ "If they choose to build, the next playbook is validation: test the problem with the people who have it."
74
+ ],
75
+ "writes": [{ "route": "decisions/[id]", "as": "decision", "note": "build, keep looking, or stop; open until the founder decides" }],
76
+ "done_when": "The founder has decided.",
77
+ "artifact": "Page that collects the decision (the docket)"
78
+ }
79
+ ]
80
+ }
@@ -369,6 +369,16 @@
369
369
  ],
370
370
  "note": "Phases, gates and questions of Product Anatomy; self-describing, checked by its runner's tests"
371
371
  },
372
+ {
373
+ "id": "playbook",
374
+ "layer": "purpose",
375
+ "level": "method",
376
+ "schema": "schema/playbook.schema.json",
377
+ "paths": [
378
+ "purpose/playbooks/*.json"
379
+ ],
380
+ "note": "A step-by-step guide a venture function runs in conversation with the founder; run by interface/skills/run-playbook (a template is one record's empty shape; a playbook is the order of the work)"
381
+ },
372
382
  {
373
383
  "id": "idea-map-conventions",
374
384
  "layer": "purpose",
@@ -67,6 +67,53 @@
67
67
  "type": "boolean"
68
68
  }
69
69
  }
70
+ },
71
+ "profile": {
72
+ "type": "object",
73
+ "additionalProperties": false,
74
+ "description": "Who the founder is, in their own words, as a mentor learns it (Torian's playbook, step know-the-founder): the puzzle of their life and what they are for",
75
+ "properties": {
76
+ "puzzles": {
77
+ "type": "array",
78
+ "items": {
79
+ "type": "string"
80
+ },
81
+ "description": "The problems they keep turning over"
82
+ },
83
+ "passions": {
84
+ "type": "array",
85
+ "items": {
86
+ "type": "string"
87
+ }
88
+ },
89
+ "telos": {
90
+ "type": "string",
91
+ "description": "What a good life looks like for them; what they are for"
92
+ },
93
+ "ambitions": {
94
+ "type": "array",
95
+ "items": {
96
+ "type": "string"
97
+ }
98
+ },
99
+ "strengths": {
100
+ "type": "array",
101
+ "items": {
102
+ "type": "string"
103
+ },
104
+ "description": "What people come to them for"
105
+ },
106
+ "values": {
107
+ "type": "array",
108
+ "items": {
109
+ "type": "string"
110
+ }
111
+ },
112
+ "confirmed": {
113
+ "type": "boolean",
114
+ "description": "The founder said the profile reads true"
115
+ }
116
+ }
70
117
  }
71
118
  }
72
119
  }
@@ -0,0 +1,36 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "playbook.schema.json",
4
+ "title": "Playbook",
5
+ "description": "A step-by-step guide a venture function runs, in conversation with the founder (a template is the empty shape of one record; a playbook is the order of the work). Each step says what the agent is trying to learn, how to hold the conversation, which records it writes and when the step is done. An agent proposes; the founder confirms what is written.",
6
+ "type": "object",
7
+ "required": ["id", "title", "purpose", "when", "steps"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "id": { "type": "string", "pattern": "^[a-z0-9-]+$" },
11
+ "title": { "type": "string" },
12
+ "purpose": { "type": "string", "description": "What the founder has at the end" },
13
+ "when": { "type": "string", "description": "When an agent should offer this playbook" },
14
+ "function": { "type": "string", "description": "The venture function that owns it" },
15
+ "phase": { "type": "string", "enum": ["discovery", "validation", "beachhead", "scale", "platform"] },
16
+ "sources": { "type": "array", "items": { "type": "string" }, "description": "Ideas the playbook is built on" },
17
+ "steps": {
18
+ "type": "array",
19
+ "minItems": 1,
20
+ "items": {
21
+ "type": "object",
22
+ "required": ["id", "title", "goal", "conversation", "done_when"],
23
+ "additionalProperties": false,
24
+ "properties": {
25
+ "id": { "type": "string", "pattern": "^[a-z0-9-]+$" },
26
+ "title": { "type": "string" },
27
+ "goal": { "type": "string", "description": "What the agent is trying to learn or settle" },
28
+ "conversation": { "type": "array", "minItems": 1, "items": { "type": "string" }, "description": "How to hold the conversation: questions, moves, what to avoid" },
29
+ "writes": { "type": "array", "items": { "type": "object", "required": ["route"], "additionalProperties": false, "properties": { "route": { "type": "string" }, "as": { "type": "string", "enum": ["draft", "proposal", "evidence", "decision"] }, "note": { "type": "string" } } } },
30
+ "done_when": { "type": "string" },
31
+ "artifact": { "type": "string", "description": "The view to build for the founder at this step, per the choosing-artifacts skill" }
32
+ }
33
+ }
34
+ }
35
+ }
36
+ }