@imunitic/synapse 0.1.1 → 0.1.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/commands/synapse-init.md +1 -1
- package/commands/synapse-rebuild-diff.md +1 -1
- package/commands/synapse-status.md +19 -16
- package/harness/codex/skills/synapse-init/SKILL.md +1 -1
- package/harness/codex/skills/synapse-rebuild-diff/SKILL.md +1 -1
- package/package.json +4 -4
- package/skills/synapse-node/SKILL.md +1 -1
- package/skills/synapse-vault/SKILL.md +1 -1
package/commands/synapse-init.md
CHANGED
|
@@ -97,7 +97,7 @@ yours and cannot be scripted because what counts as signal differs per codebase.
|
|
|
97
97
|
(hash, digest, `## Sources` mirror, PUT), `synapse push-nodes`, `synapse build-index`,
|
|
98
98
|
`synapse build-project-index`.
|
|
99
99
|
|
|
100
|
-
**The work directory** defaults to `~/.
|
|
100
|
+
**The work directory** defaults to `~/.cache/synapse/work/{repo}@{branch}/`, created on demand, and
|
|
101
101
|
holds `manifest.tsv`, `all.txt`, `lists/`, the authored `b-NN.md` bodies and the coverage files. Override with `$SYNAPSE_WORK_DIR` if you need to. Two things never to do: point it
|
|
102
102
|
at the repo (`synapse` runs from inside the repo, so its working files would land in the user's
|
|
103
103
|
checkout) or at the vault (Obsidian would index a file list that runs to six figures of lines).
|
|
@@ -85,7 +85,7 @@ this command when it does. What no longer happens is arriving here merely becaus
|
|
|
85
85
|
because it is not this checkout's namespace to diff at all. Never conflate the two: a non-ancestor
|
|
86
86
|
baseline on a branch-identity match still proceeds normally, per the "One mechanical fact about
|
|
87
87
|
branches" section above.
|
|
88
|
-
- The work directory (`$SYNAPSE_WORK_DIR`, default `~/.
|
|
88
|
+
- The work directory (`$SYNAPSE_WORK_DIR`, default `~/.cache/synapse/work/{repo}@{branch}/`) ideally
|
|
89
89
|
holds the `manifest.tsv` from the original build. Without it, new paths cannot be classified as
|
|
90
90
|
auto-claimable, and clustering decisions have to be re-derived — say so rather than proceeding as if
|
|
91
91
|
nothing were missing. `synapse/{repo}@{branch}/_manifest.tsv` is the fallback copy.
|
|
@@ -60,7 +60,8 @@ step patches a compiled design note with a `> Compiled task: [[...]]` line right
|
|
|
60
60
|
**3. Design notes (any status) with a non-empty `## Open Questions`.** Match the heading followed by
|
|
61
61
|
at least one bullet -- a heading with nothing under it (fully pruned, per the Ready-gate convention
|
|
62
62
|
`/synapse-design-note` now follows) doesn't count as open. Since this section spans every status,
|
|
63
|
-
each line in the composed report also shows *which* status the note is currently in
|
|
63
|
+
each line in the composed report also shows *which* status the note is currently in, and whether it
|
|
64
|
+
has a compiled task note:
|
|
64
65
|
|
|
65
66
|
```
|
|
66
67
|
{"and": [
|
|
@@ -69,16 +70,17 @@ each line in the composed report also shows *which* status the note is currently
|
|
|
69
70
|
]}
|
|
70
71
|
```
|
|
71
72
|
|
|
72
|
-
`regexp`
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
Discussing
|
|
79
|
-
|
|
80
|
-
note beats losing it, the
|
|
81
|
-
|
|
73
|
+
Do not chain further `and`/`regexp` conditions onto this query to sort matches by status -- compound
|
|
74
|
+
`regexp` conditions against `content` have been observed to return results that are logically
|
|
75
|
+
impossible (a query with strictly more AND-ed conditions returning *more* matches than one with
|
|
76
|
+
fewer), so any query beyond a single `glob` + single `regexp` pair is unverified and not to be
|
|
77
|
+
trusted here. Instead, `mcp__obsidian__vault_read` each match directly and take two things from the
|
|
78
|
+
result, no second query needed for either: the line following `## Status` in `content` (normally
|
|
79
|
+
`Discussing`/`Ready`/`Reference`, but a note written before the three-word convention can carry free
|
|
80
|
+
text instead, e.g. `Superseded by [[...]]` -- report that verbatim rather than forcing it into a
|
|
81
|
+
bucket, surfacing an odd note beats losing it) and, from the `links` array, any path under `tasks/`
|
|
82
|
+
-- that's the compiled task, if one exists, with no separate `Compiled task:` regex needed since a
|
|
83
|
+
resolved wikilink already appears in `links` regardless of where in the body it's written.
|
|
82
84
|
|
|
83
85
|
**4. Open task notes with at least one unchecked item.** Task notes carry `status:` in frontmatter,
|
|
84
86
|
unlike design notes -- filter there first:
|
|
@@ -104,10 +106,11 @@ note past `REVIEW` on its own:
|
|
|
104
106
|
|
|
105
107
|
One section per category, in the order above. Each line names the note (title, or filename if no
|
|
106
108
|
`title` frontmatter) plus the one identifying detail that category needs. The Open Questions section
|
|
107
|
-
is the one place a note's status also
|
|
108
|
-
implies
|
|
109
|
-
|
|
110
|
-
status
|
|
109
|
+
is the one place a note's status and compiled-task link also belong on the line -- every other
|
|
110
|
+
section's heading already implies status (the "Discussing" section only ever holds `Discussing`
|
|
111
|
+
notes) and compiled-task-ness (the "Ready, not yet compiled" section only ever holds notes without
|
|
112
|
+
one), but Open Questions spans every status and both compiled and uncompiled notes, so put the status
|
|
113
|
+
first, before the title, so it's the first thing scanned:
|
|
111
114
|
|
|
112
115
|
```
|
|
113
116
|
## Discussing
|
|
@@ -117,7 +120,7 @@ status first, before the title, so it's the first thing scanned:
|
|
|
117
120
|
- {title}
|
|
118
121
|
|
|
119
122
|
## Open questions
|
|
120
|
-
- **{status}** — {title}
|
|
123
|
+
- **{status}** — {title} — {compiled task title, or "not compiled"}
|
|
121
124
|
|
|
122
125
|
## In progress (unchecked items)
|
|
123
126
|
- {title} ({N} unchecked)
|
|
@@ -97,7 +97,7 @@ yours and cannot be scripted because what counts as signal differs per codebase.
|
|
|
97
97
|
(hash, digest, `## Sources` mirror, PUT), `synapse push-nodes`, `synapse build-index`,
|
|
98
98
|
`synapse build-project-index`.
|
|
99
99
|
|
|
100
|
-
**The work directory** defaults to `~/.
|
|
100
|
+
**The work directory** defaults to `~/.cache/synapse/work/{repo}@{branch}/`, created on demand, and
|
|
101
101
|
holds `manifest.tsv`, `all.txt`, `lists/`, the authored `b-NN.md` bodies and the coverage files. Override with `$SYNAPSE_WORK_DIR` if you need to. Two things never to do: point it
|
|
102
102
|
at the repo (`synapse` runs from inside the repo, so its working files would land in the user's
|
|
103
103
|
checkout) or at the vault (Obsidian would index a file list that runs to six figures of lines).
|
|
@@ -85,7 +85,7 @@ this skill when it does. What no longer happens is arriving here merely because
|
|
|
85
85
|
because it is not this checkout's namespace to diff at all. Never conflate the two: a non-ancestor
|
|
86
86
|
baseline on a branch-identity match still proceeds normally, per the "One mechanical fact about
|
|
87
87
|
branches" section above.
|
|
88
|
-
- The work directory (`$SYNAPSE_WORK_DIR`, default `~/.
|
|
88
|
+
- The work directory (`$SYNAPSE_WORK_DIR`, default `~/.cache/synapse/work/{repo}@{branch}/`) ideally
|
|
89
89
|
holds the `manifest.tsv` from the original build. Without it, new paths cannot be classified as
|
|
90
90
|
auto-claimable, and clustering decisions have to be re-derived — say so rather than proceeding as if
|
|
91
91
|
nothing were missing. `synapse/{repo}@{branch}/_manifest.tsv` is the fallback copy.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@imunitic/synapse",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Memory for Claude Code, Codex CLI, and OpenCode: a durable Obsidian vault plus a per-repo code graph.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -22,9 +22,9 @@
|
|
|
22
22
|
"*.conf.template"
|
|
23
23
|
],
|
|
24
24
|
"optionalDependencies": {
|
|
25
|
-
"@imunitic/synapse-darwin-arm64": "0.1.
|
|
26
|
-
"@imunitic/synapse-linux-x64": "0.1.
|
|
27
|
-
"@imunitic/synapse-linux-arm64": "0.1.
|
|
25
|
+
"@imunitic/synapse-darwin-arm64": "0.1.2",
|
|
26
|
+
"@imunitic/synapse-linux-x64": "0.1.2",
|
|
27
|
+
"@imunitic/synapse-linux-arm64": "0.1.2"
|
|
28
28
|
},
|
|
29
29
|
"license": "SEE LICENSE IN LICENSE"
|
|
30
30
|
}
|
|
@@ -76,7 +76,7 @@ needs one.
|
|
|
76
76
|
`built_at`, `commit`, `stale: false`, and preserving `## Notes` — belongs to
|
|
77
77
|
`synapse write-node`, because a hub node's `sources` can no more be *emitted* into a tool call
|
|
78
78
|
than read into a window. Let `$W` be the project's work directory,
|
|
79
|
-
`~/.
|
|
79
|
+
`~/.cache/synapse/work/{repo}@{branch}/`.
|
|
80
80
|
|
|
81
81
|
- **Get the node's path list into a file, never into context:**
|
|
82
82
|
|
|
@@ -103,5 +103,5 @@ and regenerated by the `synapse-node` skill — never hand-edited, because the w
|
|
|
103
103
|
`sources` hashes, `sources_digest` and the `## Sources` mirror, and a hand edit desynchronises
|
|
104
104
|
them. `_profile.txt` and `_manifest.tsv` are human-readable and may be edited directly. The
|
|
105
105
|
machine-only artifacts -- `_index.bin`, `_refs.tsv`, `_tags_cache.bin` -- are not here at all: they
|
|
106
|
-
live in `~/.
|
|
106
|
+
live in `~/.cache/synapse/work/{repo}@{branch}/`, because they are derived, rebuildable and large,
|
|
107
107
|
and the vault is version-controlled.
|