@really-knows-ai/foundry 3.3.1 → 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.
- package/dist/CHANGELOG.md +28 -0
- package/dist/skills/add-appraiser/SKILL.md +19 -48
- package/dist/skills/add-artefact-type/SKILL.md +26 -92
- package/dist/skills/add-cycle/SKILL.md +46 -114
- package/dist/skills/add-extractor/SKILL.md +44 -48
- package/dist/skills/add-flow/SKILL.md +90 -23
- package/dist/skills/add-law/SKILL.md +67 -111
- package/dist/skills/add-memory-edge-type/SKILL.md +56 -27
- package/dist/skills/add-memory-entity-type/SKILL.md +59 -40
- package/dist/skills/change-embedding-model/SKILL.md +24 -14
- package/dist/skills/drop-memory-edge-type/SKILL.md +20 -12
- package/dist/skills/drop-memory-entity-type/SKILL.md +22 -14
- package/dist/skills/init-memory/SKILL.md +45 -41
- package/dist/skills/rename-memory-edge-type/SKILL.md +17 -8
- package/dist/skills/rename-memory-entity-type/SKILL.md +17 -9
- package/dist/skills/reset-memory/SKILL.md +18 -9
- package/package.json +1 -1
|
@@ -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
|
-
##
|
|
11
|
+
## Foundry Agent Preflight
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
If you are clearly operating as the Foundry agent, continue.
|
|
15
14
|
|
|
16
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
33
|
-
internally first if not).
|
|
23
|
+
Before writing Foundry configuration:
|
|
34
24
|
|
|
35
|
-
|
|
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
|
-
|
|
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
|
-
|
|
41
|
-
# <type>
|
|
35
|
+
Memory must be initialised (`foundry/memory/` must exist). Initialise memory internally first if not.
|
|
42
36
|
|
|
43
|
-
|
|
37
|
+
## Protocol
|
|
44
38
|
|
|
45
|
-
|
|
46
|
-
Convention for how `name` is formed. Be specific enough to guarantee uniqueness.
|
|
39
|
+
### Context object
|
|
47
40
|
|
|
48
|
-
|
|
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
|
-
|
|
53
|
-
- `<edge>` to `<type>`: brief semantic note
|
|
54
|
-
```
|
|
43
|
+
Context fields: `{name, body}`
|
|
55
44
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
42
|
-
|
|
43
|
-
1.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
##
|
|
40
|
-
|
|
41
|
-
1.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
-
##
|
|
41
|
-
|
|
42
|
-
1.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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
|
-
##
|
|
15
|
+
## Foundry Agent Preflight
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
If you are clearly operating as the Foundry agent, continue.
|
|
18
18
|
|
|
19
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
27
|
+
Before writing Foundry configuration:
|
|
36
28
|
|
|
37
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
37
|
+
## Protocol
|
|
38
38
|
|
|
39
|
-
1.
|
|
40
|
-
2. Invoke `foundry_memory_rename_edge_type` with `{ from, to }`.
|
|
41
|
-
3. Commit:
|
|
39
|
+
### 1. Understand
|
|
42
40
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
##
|
|
37
|
+
## Protocol
|
|
38
38
|
|
|
39
|
-
1.
|
|
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
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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
|
-
##
|
|
36
|
+
## Protocol
|
|
37
37
|
|
|
38
|
-
1.
|
|
39
|
-
2. Require explicit confirmation.
|
|
40
|
-
3. Invoke `foundry_memory_reset` with `{ confirm: true }`.
|
|
41
|
-
4. Commit:
|
|
38
|
+
### 1. Understand
|
|
42
39
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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.
|
|
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",
|