@really-knows-ai/foundry 3.3.0 → 3.3.2

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.
@@ -6,60 +6,79 @@ description: Create a new entity type in flow memory, with a prose brief for the
6
6
 
7
7
  # Add Memory Entity Type
8
8
 
9
- Declare a new entity type. The prose body becomes part of every cycle's prompt and
10
- decides what the LLM writes into memory.
9
+ Declare a new entity type. The prose body becomes part of every cycle's prompt and decides what the LLM writes into memory.
11
10
 
12
- ## Prerequisites
11
+ ## Foundry Agent Preflight
13
12
 
14
- Before running this skill, verify all of the following:
13
+ If you are clearly operating as the Foundry agent, continue.
15
14
 
16
- 1. The `foundry/` directory exists in the project root. If it does not
17
- exist, stop and tell the user:
15
+ If you are not clearly operating as the Foundry agent, pause and tell the user:
18
16
 
19
- > Restart OpenCode to initialise Foundry, then retry this command.
17
+ > This work is best handled by the Foundry agent. Restart OpenCode if you have just initialised Foundry, switch to the **Foundry** agent, and continue this request there.
20
18
 
21
- 2. The current git branch is a `config/*` branch. Run
22
- `git rev-parse --abbrev-ref HEAD` and confirm it matches
23
- `config/<description>`.
19
+ This is an advisory guard. Continue only when the active instructions make it clear you are the Foundry agent or the user explicitly asks to proceed here.
24
20
 
25
- 3. If the branch does not start with `config/`, move to a suitable
26
- `config/*` branch internally when the current branch is safe. If
27
- the current branch is `work/*` or `dry-run/*/*`, stop and explain
28
- the active work must be finished first. When unrelated uncommitted
29
- changes could be affected by branching or writing files, ask before
30
- proceeding.
21
+ ## Config Branch Handling
31
22
 
32
- 4. Memory is initialised (`foundry/memory/` exists; initialise memory
33
- internally first if not).
23
+ Before writing Foundry configuration:
34
24
 
35
- ## Steps
25
+ - Confirm `foundry/` exists. If it is missing, initialise Foundry first when that serves the user's goal.
26
+ - Check the current branch.
27
+ - On `main` or another clean non-work branch, create a `config/<short-description>` branch internally.
28
+ - On `config/*`, continue on the current branch.
29
+ - On `work/*`, stop and explain that active flow work must be finished before configuration changes.
30
+ - On `dry-run/*/*`, stop and explain that the dry run must be finished before configuration changes.
31
+ - If unrelated uncommitted changes could be affected by branching or writing files, ask before proceeding.
36
32
 
37
- 1. **Ask the user for the type name** (lowercase snake_case, e.g. `class`, `stored_proc`).
38
- 2. **Propose a prose body template** for the user to edit. Sections required: Name (naming convention for this type), Value (what goes in the value field, must state that relationships belong in edges), Relationships (informational list of likely edges). Example:
33
+ Do not tell the user to call branch tools directly.
39
34
 
40
- ```markdown
41
- # <type>
35
+ Memory must be initialised (`foundry/memory/` must exist). Initialise memory internally first if not.
42
36
 
43
- Short description of what this entity represents in the subject system.
37
+ ## Protocol
44
38
 
45
- ## Name
46
- Convention for how `name` is formed. Be specific enough to guarantee uniqueness.
39
+ ### Context object
47
40
 
48
- ## Value
49
- Describe what the `value` string should contain: intrinsic characteristics of
50
- the entity only. Relationships to other entities belong in edges, not here.
41
+ When invoked with pre-filled fields matching the `foundry_memory_create_entity_type` tool args, skip questions for provided fields. Missing fields trigger clarifying questions.
51
42
 
52
- ## Relationships
53
- - `<edge>` to `<type>`: brief semantic note
54
- ```
43
+ Context fields: `{name, body}`
55
44
 
56
- 3. **Confirm the body with the user.** Short bodies (≤100 chars) are a red flag; push back.
57
- 4. **Create the type** by invoking `foundry_memory_create_entity_type` with `{ name, body }`. The tool rejects duplicate names (entity or edge) — surface the error to the user if it fires and stop.
58
- 5. **Commit**:
45
+ When invoked with a context:
46
+ - If all required fields are present, skip the Understand phase and proceed to Plan Confirm Build.
47
+ - If only some fields are present, ask only for the missing ones.
59
48
 
60
- ```bash
61
- git add foundry/memory/entities/<name>.md foundry/memory/schema.json
62
- git commit -m "feat(memory): add entity type <name>"
63
- ```
49
+ ### 1. Understand
64
50
 
65
- 6. **Dependency composition**: if related edge types would serve the user's stated goal, compose them internally with one focused question for ambiguity.
51
+ Ask for each field one question at a time:
52
+
53
+ 1. **Type name.** Lowercase snake_case (e.g. `class`, `stored_proc`).
54
+ 2. **Prose body.** Propose a body template based on the type name. The body template includes:
55
+ - `# <type>` heading
56
+ - Short description of what this entity represents in the subject system
57
+ - `## Name` — convention for how `name` is formed, specific enough to guarantee uniqueness
58
+ - `## Value` — what the `value` string should contain: intrinsic characteristics of the entity only. Relationships to other entities belong in edges, not here.
59
+ - `## Relationships` — informational list of likely edges
60
+
61
+ After presenting the template, ask the user to confirm or refine the body. Short bodies (≤100 chars) are a red flag; push back.
62
+
63
+ ### 2. Plan
64
+
65
+ Present the entity type definition: name and body. Ask: "Does this capture the entity type correctly?" Iterate until the user is satisfied.
66
+
67
+ ### 3. Confirm
68
+
69
+ Ask: "Proceed with this plan?" — wait for user answer before building. If the user rejects the plan, return to the Understand phase and adjust.
70
+
71
+ ### 4. Build
72
+
73
+ 1. **Validate**: Call `foundry_memory_validate`. If the result is `{ ok: false, errors: [...] }`, address each error and re-run until `{ ok: true }`.
74
+ 2. **Create**: Call `foundry_memory_create_entity_type({ name: "<name>", body: "<body>" })`. The tool rejects duplicate names (entity or edge) — surface the error to the user if it fires and stop.
75
+ 3. **Commit**: Run `git add foundry/memory/entities/<name>.md foundry/memory/schema.json`. Run `git commit -m "feat(memory): add entity type <name>"`. Report the commit hash.
76
+
77
+ #### Post-Build — compose related edge types
78
+
79
+ If related edge types would serve the user's stated goal, compose them internally with one focused question when schema design is ambiguous.
80
+
81
+ ## What you do NOT do
82
+
83
+ - You do not delegate memory initialisation to the user — initialise internally when needed
84
+ - You do not delegate edge type creation to the user — compose internally when edge types serve the user's stated goal
@@ -38,17 +38,27 @@ Before running this skill, verify all of the following:
38
38
  from this machine. Allow enough time and bandwidth to re-embed
39
39
  (O(#entities) requests in batches).
40
40
 
41
- ## Steps
42
-
43
- 1. **Ask the user for**: `model`, `dimensions`, optionally new `baseURL`, `apiKey`.
44
- 2. **Invoke `foundry_memory_change_embedding_model`** with `{ model, dimensions, baseURL?, apiKey? }`.
45
- The tool probes the new provider, re-embeds every entity, rewrites
46
- `schema.json`, and then updates `foundry/memory/config.md` frontmatter to
47
- match. On probe or re-embed failure, nothing is written.
48
- 3. **Verify** by invoking `foundry_memory_search` with a sample query.
49
- 4. **Commit**:
50
-
51
- ```bash
52
- git add foundry/memory/config.md foundry/memory/schema.json foundry-memory/relations/
53
- git commit -m "chore(memory): change embedding model to <model>"
54
- ```
41
+ ## Protocol
42
+
43
+ ### 1. Understand
44
+
45
+ Ask for each field one question at a time:
46
+
47
+ 1. **Model**: Offer multiple choice from available models (e.g. `text-embedding-3-small`, `text-embedding-3-large`, `nomic-embed-text`).
48
+ 2. **Dimensions**: Recommend the default for the chosen model.
49
+ 3. **Custom endpoint and API key**: Ask: "Do you need a custom endpoint or API key? (No is the default — uses the current provider.)" Only ask for `baseURL` and `apiKey` if the user says yes.
50
+
51
+ ### 2. Plan
52
+
53
+ Present a summary: "Change embedding model to `<model>` with `<dimensions>` dimensions. Base URL: `<baseURL or 'default'>`. API key: `<'custom' or 'default'>`."
54
+
55
+ ### 3. Confirm
56
+
57
+ Ask: "Proceed?" — wait for the user's answer. Do not proceed to Build unless the user says yes. If the user rejects the plan, return to the Understand phase and adjust.
58
+
59
+ ### 4. Build
60
+
61
+ 1. **Check connectivity**: Verify the new provider is reachable from this machine and the model name is valid.
62
+ 2. **Execute**: Call `foundry_memory_change_embedding_model({ model: "<model>", dimensions: <dimensions>, baseURL: "<baseURL>", apiKey: "<apiKey>" })`. The tool probes the new provider, re-embeds every entity, rewrites `schema.json`, and then updates `foundry/memory/config.md` frontmatter to match. On probe or re-embed failure, nothing is written.
63
+ 3. **Verify**: Invoke `foundry_memory_search` with a sample query.
64
+ 4. **Commit**: Run `git add foundry/memory/config.md foundry/memory/schema.json foundry-memory/relations/`. Run `git commit -m "chore(memory): change embedding model to <model>"`. Report the commit hash.
@@ -36,15 +36,23 @@ Before running this skill, verify all of the following:
36
36
  4. Memory is initialised (`foundry/memory/` exists; run `init-memory`
37
37
  if not).
38
38
 
39
- ## Steps
40
-
41
- 1. Ask the user for the edge type name.
42
- 2. Invoke `foundry_memory_drop_edge_type` with `{ name, confirm: false }` (or omit `confirm`). This returns `{ requiresConfirm: true, preview: { rows } }` — show the user the row count that will be deleted.
43
- 3. Require explicit "yes, delete it" confirmation.
44
- 4. Invoke `foundry_memory_drop_edge_type` again with `{ name, confirm: true }`.
45
- 5. Commit:
46
-
47
- ```bash
48
- git add -A foundry/memory/ foundry-memory/relations/
49
- git commit -m "refactor(memory): drop edge type <name>"
50
- ```
39
+ ## Protocol
40
+
41
+ ### 1. Understand
42
+
43
+ Ask for `name`. List existing edge types as multiple choice options. Warn about the destructive nature: this deletes all edges of this type.
44
+
45
+ ### 2. Plan
46
+
47
+ Present a preview: call `foundry_memory_drop_edge_type({ name: "<name>", confirm: false })`. This returns `{ requiresConfirm: true, preview: { rows } }` — show the user the row count that will be deleted.
48
+
49
+ Summarise: "Drop edge type `<name>` — this will delete the edge type and all its edges. This action cannot be undone."
50
+
51
+ ### 3. Confirm
52
+
53
+ Ask: "Proceed?" with explicit confirmation required. Wait for the user's answer. Do not proceed to Build unless the user says yes. If the user rejects the plan, return to the Understand phase and adjust.
54
+
55
+ ### 4. Build
56
+
57
+ 1. **Execute**: Call `foundry_memory_drop_edge_type({ name: "<name>", confirm: true })`.
58
+ 2. **Commit**: Run `git add -A foundry/memory/ foundry-memory/relations/`. Run `git commit -m "refactor(memory): drop edge type <name>"`. Report the commit hash.
@@ -37,17 +37,25 @@ Before running this skill, verify all of the following:
37
37
  4. Memory is initialised (`foundry/memory/` exists; run `init-memory`
38
38
  if not).
39
39
 
40
- ## Steps
41
-
42
- 1. Ask the user for the type name.
43
- 2. Invoke `foundry_memory_drop_entity_type` with `{ name, confirm: false }` (or omit `confirm`). This returns `{ requiresConfirm: true, preview: { entityRows, affectedEdges: [...] } }`. Show the user:
44
- - `entityRows` number of entities of this type that will be deleted.
45
- - For each `affectedEdges` entry: `cascadeDrop` means the whole edge type disappears; `prune` means `rowsAffected` rows will be removed but the edge type survives.
46
- 3. Require explicit "yes, delete it" confirmation.
47
- 4. Invoke `foundry_memory_drop_entity_type` again with `{ name, confirm: true }`.
48
- 5. Commit:
49
-
50
- ```bash
51
- git add -A foundry/memory/ foundry-memory/relations/
52
- git commit -m "refactor(memory): drop entity type <name>"
53
- ```
40
+ ## Protocol
41
+
42
+ ### 1. Understand
43
+
44
+ Ask for `name`. List existing entity types as multiple choice options. Warn about the destructive nature: this deletes all rows of this type and strips or removes any edges that reference it.
45
+
46
+ ### 2. Plan
47
+
48
+ Present a preview: call `foundry_memory_drop_entity_type({ name: "<name>", confirm: false })`. This returns `{ requiresConfirm: true, preview: { entityRows, affectedEdges: [...] } }`. Show the user:
49
+ - `entityRows` — number of entities of this type that will be deleted.
50
+ - For each `affectedEdges` entry: `cascadeDrop` means the whole edge type disappears; `prune` means `rowsAffected` rows will be removed but the edge type survives.
51
+
52
+ Summarise: "Drop entity type `<name>` this will delete the type and all its edges. This action cannot be undone."
53
+
54
+ ### 3. Confirm
55
+
56
+ Ask: "Proceed?" with explicit confirmation required. Wait for the user's answer. Do not proceed to Build unless the user says yes. If the user rejects the plan, return to the Understand phase and adjust.
57
+
58
+ ### 4. Build
59
+
60
+ 1. **Execute**: Call `foundry_memory_drop_entity_type({ name: "<name>", confirm: true })`.
61
+ 2. **Commit**: Run `git add -A foundry/memory/ foundry-memory/relations/`. Run `git commit -m "refactor(memory): drop entity type <name>"`. Report the commit hash.
@@ -12,68 +12,72 @@ definitions, the schema, the config, and the gitignored Cozo database.
12
12
  `foundry-memory/relations/` is a top-level sibling of `foundry/` that holds
13
13
  the committed NDJSON relations.
14
14
 
15
- ## Prerequisites
15
+ ## Foundry Agent Preflight
16
16
 
17
- Before running this skill, verify all of the following:
17
+ If you are clearly operating as the Foundry agent, continue.
18
18
 
19
- 1. The `foundry/` directory exists in the project root. If it does not
20
- exist, stop and tell the user:
19
+ If you are not clearly operating as the Foundry agent, pause and tell the user:
21
20
 
22
- > Restart OpenCode to initialise Foundry, then retry this command.
21
+ > This work is best handled by the Foundry agent. Restart OpenCode if you have just initialised Foundry, switch to the **Foundry** agent, and continue this request there.
23
22
 
24
- 2. The current git branch is a `config/*` branch. Run
25
- `git rev-parse --abbrev-ref HEAD` and confirm it matches
26
- `config/<description>`.
23
+ This is an advisory guard. Continue only when the active instructions make it clear you are the Foundry agent or the user explicitly asks to proceed here.
27
24
 
28
- 3. If the branch does not start with `config/`, move to a suitable
29
- `config/*` branch internally when the current branch is safe. If
30
- the current branch is `work/*` or `dry-run/*/*`, stop and explain
31
- the active work must be finished first. When unrelated uncommitted
32
- changes could be affected by branching or writing files, ask before
33
- proceeding.
25
+ ## Config Branch Handling
34
26
 
35
- Neither `foundry/memory/` nor `foundry-memory/` may already exist.
27
+ Before writing Foundry configuration:
36
28
 
37
- ## Steps
29
+ - Confirm `foundry/` exists. If it is missing, initialise Foundry first when that serves the user's goal.
30
+ - Check the current branch.
31
+ - On `main` or another clean non-work branch, create a `config/<short-description>` branch internally.
32
+ - On `config/*`, continue on the current branch.
33
+ - On `work/*`, stop and explain that active flow work must be finished before configuration changes.
34
+ - On `dry-run/*/*`, stop and explain that the dry run must be finished before configuration changes.
35
+ - If unrelated uncommitted changes could be affected by branching or writing files, ask before proceeding.
38
36
 
39
- 1. **Ask the user** whether to enable embeddings (semantic search).
40
- - Default: **yes**, targeting a local Ollama instance
41
- (`http://localhost:11434/v1`, `nomic-embed-text`, 768 dims).
42
- - If the user declines, note it and pass `embeddings_enabled: false` in
43
- step 2.
37
+ Do not tell the user to call branch tools directly.
44
38
 
45
- 2. **Invoke `foundry_memory_init`** with `{ embeddings_enabled, probe: true }`.
39
+ Neither `foundry/memory/` nor `foundry-memory/` may already exist. If they do, stop and tell the user that memory is already initialised.
46
40
 
47
- The tool deterministically:
41
+ ## Protocol
42
+
43
+ ### 1. Understand
44
+
45
+ Ask about `embeddings_enabled`. Offer multiple choice:
46
+
47
+ > Enable embeddings?
48
+ > 1. **Yes (Recommended)** — semantic search with local Ollama instance (`http://localhost:11434/v1`, `nomic-embed-text`, 768 dimensions).
49
+ > 2. **No** — keyword-only search.
50
+
51
+ ### 2. Plan
52
+
53
+ Present the init plan and invite refinement: whether embeddings are enabled and what that means (semantic search vs keyword-only). Ask: "Does this look right?"
54
+
55
+ ### 3. Confirm
56
+
57
+ Ask: "Proceed with this plan?" — wait for the user to answer. Do not proceed to Build unless the user says yes. If the user rejects the plan, return to the Understand phase and adjust.
58
+
59
+ ### 4. Build
60
+
61
+ 1. **Initialise**: Call `foundry_memory_init({ embeddings_enabled: <bool>, probe: true })`. The tool deterministically:
48
62
  - creates `foundry/memory/entities/` and `foundry/memory/edges/` with `.gitkeep`,
49
63
  - creates `foundry-memory/relations/` (top-level sibling of `foundry/`) with `.gitkeep`,
50
64
  - writes `foundry/memory/config.md` (frontmatter set from the embeddings choice),
51
65
  - writes `foundry/memory/schema.json` (`embeddings: {...}` when enabled, `null` when not),
52
- - appends the three `foundry/memory/memory.db*` entries to `.gitignore`
53
- idempotently,
66
+ - appends the three `foundry/memory/memory.db*` entries to `.gitignore` idempotently,
54
67
  - probes the embedding provider (only when enabled) and returns the result.
55
68
 
56
69
  It fails if either `foundry/memory/` or `foundry-memory/` already exists.
57
70
 
58
- 3. **Handle the probe result** (field `probe` in the return value).
71
+ 2. **Handle the probe result** (field `probe` in the return value):
59
72
  - `probe == null`: embeddings disabled, skip.
60
- - `probe.ok == true`: display `✓ Embedding provider responded (dimensions: N)`
61
- where N is `probe.dimensions`, then continue.
73
+ - `probe.ok == true`: display `✓ Embedding provider responded (dimensions: N)` where N is `probe.dimensions`, then continue.
62
74
  - `probe.ok == false`: present the user with these options:
63
- 1. Install/start Ollama and `ollama pull nomic-embed-text`, then invoke
64
- `foundry_memory_validate` to re-check.
65
- 2. Edit `foundry/memory/config.md` frontmatter to point at a different
66
- OpenAI-compatible endpoint, then invoke `foundry_memory_validate`.
75
+ 1. Install/start Ollama and `ollama pull nomic-embed-text`, then invoke `foundry_memory_validate` to re-check.
76
+ 2. Edit `foundry/memory/config.md` frontmatter to point at a different OpenAI-compatible endpoint, then invoke `foundry_memory_validate`.
67
77
  3. Set `embeddings.enabled: false` in `foundry/memory/config.md`.
68
78
 
69
- 4. **Commit the scaffold**:
70
-
71
- ```bash
72
- git add foundry/memory/ foundry-memory/ .gitignore
73
- git commit -m "feat: initialise flow memory"
74
- ```
79
+ 3. **Commit**: Run `git add foundry/memory/ foundry-memory/ .gitignore`. Run `git commit -m "feat: initialise flow memory"`. Report the commit hash.
75
80
 
76
- 5. **Continue the user's original request**:
81
+ 4. **Continue the user's original request**:
77
82
 
78
- > Flow memory is scaffolded. The Foundry agent will continue to define
79
- > memory entity and edge types as needed to support your goal.
83
+ > Flow memory is scaffolded. The Foundry agent will continue to define memory entity and edge types as needed to support your goal.
@@ -34,13 +34,22 @@ Before running this skill, verify all of the following:
34
34
  4. Memory is initialised. The `from` edge type must exist; the `to`
35
35
  name must be free.
36
36
 
37
- ## Steps
37
+ ## Protocol
38
38
 
39
- 1. Ask the user for `from` and `to`.
40
- 2. Invoke `foundry_memory_rename_edge_type` with `{ from, to }`.
41
- 3. Commit:
39
+ ### 1. Understand
42
40
 
43
- ```bash
44
- git add -A foundry/memory/ foundry-memory/relations/
45
- git commit -m "refactor(memory): rename edge type <from> -> <to>"
46
- ```
41
+ Ask for `from` and `to` one question at a time. List existing edge types as multiple choice options for `from`. Warn that this does not touch row data.
42
+
43
+ ### 2. Plan
44
+
45
+ Present a summary: "Rename edge type `<from>` → `<to>`."
46
+
47
+ ### 3. Confirm
48
+
49
+ Ask: "Proceed?" — wait for the user's answer. Do not proceed to Build unless the user says yes. If the user rejects the plan, return to the Understand phase and adjust.
50
+
51
+ ### 4. Build
52
+
53
+ 1. **Validate**: Check that `<to>` does not conflict with existing entity or edge types.
54
+ 2. **Execute**: Call `foundry_memory_rename_edge_type({ from: "<from>", to: "<to>" })`.
55
+ 3. **Commit**: Run `git add -A foundry/memory/ foundry-memory/relations/`. Run `git commit -m "refactor(memory): rename edge type <from> -> <to>"`. Report the commit hash.
@@ -34,14 +34,22 @@ Before running this skill, verify all of the following:
34
34
  4. Memory is initialised. The `from` entity type must exist; the `to`
35
35
  name must be free (no existing entity or edge).
36
36
 
37
- ## Steps
37
+ ## Protocol
38
38
 
39
- 1. Ask the user for `from` and `to`.
40
- 2. Warn the user: this rewrites committed NDJSON rows in every edge that references the entity. Preview the change with `foundry_memory_validate` if desired.
41
- 3. Invoke `foundry_memory_rename_entity_type` with `{ from, to }`.
42
- 4. Commit:
39
+ ### 1. Understand
43
40
 
44
- ```bash
45
- git add -A foundry/memory/ foundry-memory/relations/
46
- git commit -m "refactor(memory): rename entity type <from> -> <to>"
47
- ```
41
+ Ask for `from` and `to` one question at a time. List existing entity types as multiple choice options for `from`. Warn about the destructive nature: this rewrites committed NDJSON rows in every edge that references the entity.
42
+
43
+ ### 2. Plan
44
+
45
+ Present a summary: "Rename entity type `<from>` → `<to>`."
46
+
47
+ ### 3. Confirm
48
+
49
+ Ask: "Proceed?" — wait for the user's answer. Do not proceed to Build unless the user says yes. If the user rejects the plan, return to the Understand phase and adjust.
50
+
51
+ ### 4. Build
52
+
53
+ 1. **Validate**: Check that `<to>` does not conflict with existing entity or edge types. Call `foundry_memory_validate` if desired.
54
+ 2. **Execute**: Call `foundry_memory_rename_entity_type({ from: "<from>", to: "<to>" })`.
55
+ 3. **Commit**: Run `git add -A foundry/memory/ foundry-memory/relations/`. Run `git commit -m "refactor(memory): rename entity type <from> -> <to>"`. Report the commit hash.
@@ -33,14 +33,23 @@ Before running this skill, verify all of the following:
33
33
  internally if not). After the reset completes, continue the user's
34
34
  original request from context.
35
35
 
36
- ## Steps
36
+ ## Protocol
37
37
 
38
- 1. Warn the user of the scope.
39
- 2. Require explicit confirmation.
40
- 3. Invoke `foundry_memory_reset` with `{ confirm: true }`.
41
- 4. Commit:
38
+ ### 1. Understand
42
39
 
43
- ```bash
44
- git add foundry-memory/relations/ foundry/memory/schema.json
45
- git commit -m "chore(memory): reset memory data"
46
- ```
40
+ Warn about the destructive nature: this permanently deletes all memory data including entity types, edge types, and embeddings. This action cannot be undone.
41
+
42
+ Ask the user to type "reset" to confirm intent. The user must type "reset" to proceed past the Understand phase.
43
+
44
+ ### 2. Plan
45
+
46
+ Present a destructive-action summary: "This will permanently delete all memory data including entity types, edge types, and embeddings. This action cannot be undone."
47
+
48
+ ### 3. Confirm
49
+
50
+ Ask: "Proceed?" — this is the final gate. Wait for the user's answer. Do not proceed to Build unless the user says yes. If the user rejects the plan, return to the Understand phase.
51
+
52
+ ### 4. Build
53
+
54
+ 1. **Execute**: Call `foundry_memory_reset({ confirm: true })`.
55
+ 2. **Commit**: Run `git add foundry-memory/relations/ foundry/memory/schema.json`. Run `git commit -m "chore(memory): reset memory data"`. Report the commit hash.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@really-knows-ai/foundry",
3
- "version": "3.3.0",
3
+ "version": "3.3.2",
4
4
  "description": "A skill-driven framework for governed artefact generation with AI coding tools. Define your own artefact types, laws, and flows — Foundry handles the forge → quench → appraise pipeline with deterministic routing, quality gates, and iterative refinement.",
5
5
  "type": "module",
6
6
  "main": "dist/.opencode/plugins/foundry.js",