@maxkle1nz/m1nd 0.9.0-beta.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.
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@maxkle1nz/m1nd",
3
+ "version": "0.9.0-beta.0",
4
+ "description": "Universal installer and agent pack for the m1nd MCP runtime.",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/maxkle1nz/m1nd.git"
9
+ },
10
+ "homepage": "https://github.com/maxkle1nz/m1nd#readme",
11
+ "bugs": {
12
+ "url": "https://github.com/maxkle1nz/m1nd/issues"
13
+ },
14
+ "type": "commonjs",
15
+ "bin": {
16
+ "m1nd": "npm/bin/m1nd.js"
17
+ },
18
+ "files": [
19
+ "npm/",
20
+ "skills/README.md",
21
+ "skills/m1nd-universal-agent-pack.md",
22
+ "skills/m1nd-first/SKILL.md",
23
+ "skills/m1nd-operator/SKILL.md",
24
+ "skills/m1nd-operator/references/*.md",
25
+ "skills/m1nd-operator/scripts/probe_m1nd.py",
26
+ "docs/AGENT-PACKS.md",
27
+ "docs/AGENT-FIRST-DEMO.md",
28
+ "docs/MCP-HOST-REFRESH.md",
29
+ "docs/IDE-INTEGRATIONS.md",
30
+ "README.md",
31
+ "EXAMPLES.md",
32
+ "LICENSE"
33
+ ],
34
+ "scripts": {
35
+ "test": "node --test npm/test/cli.test.js",
36
+ "m1nd:doctor": "node npm/bin/m1nd.js doctor",
37
+ "m1nd:pack-check": "node npm/bin/m1nd.js pack-check",
38
+ "m1nd:install-generic": "node npm/bin/m1nd.js install-skills generic --project .",
39
+ "test:npm": "node --test npm/test/cli.test.js"
40
+ },
41
+ "engines": {
42
+ "node": ">=18"
43
+ },
44
+ "publishConfig": {
45
+ "access": "public"
46
+ }
47
+ }
@@ -0,0 +1,26 @@
1
+ # m1nd Agent Skills
2
+
3
+ This directory is the installable agent doctrine for `m1nd`.
4
+
5
+ It is intentionally host-neutral:
6
+
7
+ - `m1nd-first` is the short rule set agents should load before repository work.
8
+ - `m1nd-operator` is the deeper operating manual for routing, recovery, `L1GHT`,
9
+ document binding, multi-agent coordination, and runtime refresh.
10
+ - `m1nd-universal-agent-pack.md` is the portable prompt-pack form for hosts that
11
+ do not have a native skill directory.
12
+
13
+ Use the npm installer from the repo root to install the right shape:
14
+
15
+ ```bash
16
+ npm install -g .
17
+ m1nd install-skills codex
18
+ m1nd install-skills generic --project /path/to/project
19
+ ```
20
+
21
+ For a published package, the same flow becomes:
22
+
23
+ ```bash
24
+ npm install -g @maxkle1nz/m1nd@beta
25
+ m1nd init --host codex
26
+ ```
@@ -0,0 +1,117 @@
1
+ ---
2
+ name: m1nd-first
3
+ description: Use when investigating a repository, searching for implementation, reviewing changes, working from specs/docs, or preparing a risky code change in an environment where m1nd is available. This doctrine makes m1nd the first investigative layer before grep, glob, or manual file reads, except when the task is pure compiler/runtime truth or the exact file and lines are already known.
4
+ ---
5
+
6
+ # m1nd-first
7
+
8
+ This is a doctrine, not a manual.
9
+
10
+ ## Rules
11
+
12
+ - Start with `m1nd`.
13
+ - Before `rg`, shell globbing, or manual file reads, first ask whether `m1nd` can answer or narrow the task directly.
14
+ - Prefer the cheapest `m1nd` surface that preserves truth:
15
+ - exact text -> `search`
16
+ - path pattern -> `glob`
17
+ - known purpose, unknown location -> `seek`
18
+ - topic, subsystem, or connected neighborhood -> `activate`
19
+ - unfamiliar repo orientation -> `audit`
20
+ - stacktrace or runtime error text -> `trace`
21
+ - For docs/specs/knowledge:
22
+ - authored as `L1GHT` -> `ingest` with `adapter: "light"`
23
+ - ordinary docs/wiki/PDF/office docs -> `ingest` with `adapter: "universal"` or `adapter: "auto"`
24
+ - Before risky edits or change reviews, pass through `impact`, `validate_plan`, and usually `surgical_context_v2`.
25
+ - Keep `agent_id` stable across one investigation unless intentionally splitting roles.
26
+
27
+ ## Skip Conditions
28
+
29
+ Skip the `m1nd` first pass only when:
30
+
31
+ - the user already gave the exact file and exact lines
32
+ - the question is compiler, test, or runtime truth rather than structure
33
+ - the task is a trivial local file action with no structural uncertainty
34
+
35
+ ## Fallback
36
+
37
+ If `m1nd` does not answer enough, then fall back to shell search, direct file reads, compiler output, tests, logs, and debugger data.
38
+
39
+ For local m1nd repo work, prefer the cheap trust selftest path before a full smoke:
40
+
41
+ ```bash
42
+ python3 scripts/mcp_agent_smoke.py --repo . --handshake-only --json
43
+ ```
44
+
45
+ When the live MCP surface exposes `trust_selftest`, call that tool first:
46
+
47
+ ```json
48
+ {"agent_id":"codex-m1nd"}
49
+ ```
50
+
51
+ Treat its `verdict` as the session routing decision before relying on
52
+ retrieval. If the verdict is not `full_trust`, follow the embedded
53
+ `recovery_playbook` or call `recovery_playbook` with the same evidence before
54
+ guessing the next move. The selftest is diagnostic-only: no ingest, repair,
55
+ host refresh, graph mutation, or retrieval probe happens automatically.
56
+
57
+ If `trust_selftest` is not exposed but `session_handshake` is, call the cheaper
58
+ sub-check:
59
+
60
+ ```json
61
+ {"agent_id":"codex-m1nd"}
62
+ ```
63
+
64
+ Treat its `trust_mode` as the session routing decision before relying on
65
+ retrieval. If the mode is not `full_trust`, call `recovery_playbook` before
66
+ guessing the next move. The playbook returns ordered recovery steps and a
67
+ binding fingerprint without ingesting, repairing, or probing automatically.
68
+
69
+ Use `--handshake-probe` only when retrieval trust itself matters. The plain
70
+ selftest/handshake path should stay cheap: no ingest, no repair, and no
71
+ retrieval probe by default. The repo-local smoke harness calls `trust_selftest`
72
+ and `session_handshake` when available and falls back to its built-in handshake
73
+ for older binaries.
74
+
75
+ If the host exposes `health` but not `trust_selftest`, `session_handshake`, or
76
+ `recovery_playbook`, read `health.tool_surface_contract` and
77
+ `health.host_binding_alignment`.
78
+ That is enough to classify the binding as partial/degraded and switch to local
79
+ smokes or direct file truth until the host refreshes its tool surface.
80
+
81
+ If `m1nd` is visible but the host tool surface is missing recovery tools such as
82
+ `ingest`, treat it as `degraded_host_tool_surface`, not as a normal graph
83
+ failure. Use whatever m1nd can still provide for orientation, but verify final
84
+ truth against local files until the MCP binding is refreshed. If
85
+ `recovery_playbook` is available, call it with the tool surface:
86
+
87
+ ```json
88
+ {"agent_id":"codex-m1nd","observed_tool":"tools/list","observed_proof_state":"blocked","observed_tool_count":3,"available_tools":["seek","audit","doctor"],"missing_tools":["ingest"]}
89
+ ```
90
+
91
+ If an `ingest` call appears to succeed but a follow-up retrieval call such as
92
+ `seek`, `search`, or `activate` returns `blocked`, zero candidates, or an empty
93
+ graph unexpectedly, do not assume the codebase is unindexed. Treat it as a
94
+ possible host-binding/session-continuity problem. If `recovery_playbook` is
95
+ available, use `recovery.arguments` from the retrieval response when present.
96
+ If the response does not include a recovery payload, call `recovery_playbook`
97
+ with the suspicious output first. Let the playbook decide when to call
98
+ `doctor`:
99
+
100
+ ```json
101
+ {"agent_id":"codex-m1nd","observed_tool":"seek","observed_proof_state":"blocked","observed_candidates":0}
102
+ ```
103
+
104
+ If the repo has a local m1nd checkout, verify the real runtime with its stdio
105
+ and HTTP smoke harness before deciding:
106
+
107
+ ```bash
108
+ python3 scripts/mcp_agent_smoke.py --repo . --json
109
+ python3 scripts/mcp_agent_smoke.py --repo . --transport http --json
110
+ ```
111
+
112
+ ## Deep Manual
113
+
114
+ If the task needs detailed routing, `L1GHT` semantics, document-lane choice, multi-agent coordination, or refresh procedures, consult:
115
+
116
+ - the companion `m1nd-operator` skill installed with this pack, usually at
117
+ `m1nd-operator/SKILL.md` in the same skills root.
@@ -0,0 +1,166 @@
1
+ ---
2
+ name: m1nd-operator
3
+ description: Use when the user mentions m1nd or when repo investigation, search, review, docs/spec work, or risky change prep should go through m1nd first before grep, glob, or manual file reads. Covers m1nd-first routing, L1GHT and universal document ingestion, risky edit preparation, document-to-code binding, multi-agent coordination, trails/continuity, daemon alerts, and refreshing the live m1nd tool surface from the local m1nd-mcp binary.
4
+ ---
5
+
6
+ # m1nd Operator
7
+
8
+ This is the deep execution manual that complements the short `m1nd-first` doctrine.
9
+
10
+ Use this skill when `m1nd` should be the first layer of truth for the task.
11
+
12
+ `m1nd` is strongest when structure, connected context, blast radius, continuity, docs/code bindings, or multi-agent coordination are the bottleneck. It is not the replacement for `rg`, the compiler, runtime logs, or the test runner.
13
+
14
+ ## Default Stance
15
+
16
+ Default to `m1nd` before grep, glob, or manual file reads.
17
+
18
+ The first question is not "which shell command should I run?" It is "can `m1nd` answer or narrow this directly from graph structure, connected context, docs, or cross-domain bindings?"
19
+
20
+ Only skip the `m1nd` first pass when:
21
+
22
+ - the user already gave the exact file and exact lines
23
+ - the question is pure compiler/test/runtime truth
24
+ - the task is a trivial local file action with no search or structural uncertainty
25
+
26
+ ## Core Rules
27
+
28
+ - Prefer the live MCP surface over stale prose. If tool names, counts, or parameters matter, run the bundled helper from this skill directory: `python3 scripts/probe_m1nd.py tools`.
29
+ - Keep `agent_id` stable within one investigation. Change it only when intentionally starting another role or another concurrent investigation.
30
+ - Ingest first. Re-ingest after code changes, or use incremental ingest for code repos when appropriate.
31
+ - If the live MCP surface exposes `trust_selftest`, call it first and route by
32
+ `verdict` before relying on retrieval. `full_trust` means proceed with
33
+ m1nd-first; `needs_ingest` means ingest the intended repo; `orientation_only`
34
+ or `degraded_host_tool_surface` means use m1nd only for orientation and
35
+ verify final truth with local files until the binding is refreshed;
36
+ `stale_binding_suspected` means compare binding fingerprints and follow the
37
+ recovery playbook before trusting retrieval.
38
+ - If `trust_selftest` is not exposed but `session_handshake` is, call the
39
+ handshake and route by `trust_mode` as the cheaper sub-check.
40
+ - If the selftest verdict or handshake trust mode is not `full_trust`, or
41
+ retrieval returns `blocked`/zero candidates unexpectedly, call
42
+ `recovery_playbook` before inventing the next step. Use its ordered steps and
43
+ `binding_fingerprint` to compare host, stdio, HTTP, runtime root, graph paths,
44
+ generation counters, and ingest roots.
45
+ - If the host exposes `health` but not `trust_selftest`, `session_handshake`, or
46
+ `recovery_playbook`, read `health.tool_surface_contract` and
47
+ `health.host_binding_alignment`. Treat missing required host-visible tools as
48
+ `degraded_host_tool_surface`, then verify with repo-local smokes or direct
49
+ files until the host refreshes its binding.
50
+ - After ingest, sanity-check that retrieval is seeing the same active graph. If
51
+ `seek`, `search`, or `activate` returns `blocked`, zero candidates, or an
52
+ unexpectedly empty graph immediately after a successful ingest, suspect
53
+ host-binding/session split-brain before blaming the repo or the m1nd core.
54
+ If the response includes `recovery.arguments`, pass those arguments directly
55
+ to `recovery_playbook`. Otherwise, call `recovery_playbook` with
56
+ `observed_tool`, `observed_proof_state`, and `observed_candidates` from the
57
+ suspicious response before falling back. Let the playbook decide when to call
58
+ `doctor`.
59
+ - If the host tool surface exposes m1nd but is missing recovery tools such as
60
+ `ingest`, classify the session as `degraded_host_tool_surface`. If `doctor`
61
+ is available, call it with `observed_tool="tools/list"`,
62
+ `observed_tool_count`, `available_tools`, and `missing_tools`. Until the MCP
63
+ binding is refreshed, use m1nd only as orientation and verify final truth with
64
+ direct repo files.
65
+ - Make `m1nd` the first investigative step before shell search:
66
+ - exact text need -> try `search` before `rg`
67
+ - path pattern need -> try `glob` before filesystem globbing
68
+ - implementation-by-purpose need -> try `seek`
69
+ - subsystem/topic/connected neighborhood need -> try `activate`
70
+ - Treat `proof_state`, `next_suggested_tool`, `next_suggested_target`, and `next_step_hint` as workflow control signals, not decorative fields.
71
+ - Use the cheapest surface that preserves structural truth:
72
+ - exact text -> `search`
73
+ - path pattern -> `glob`
74
+ - known file -> `view`
75
+ - known purpose, unknown location -> `seek`
76
+ - topic/subsystem/neighborhood -> `activate`
77
+ - For docs/specs/knowledge, decide the lane early:
78
+ - authored as graph-native semantic markdown -> `ingest` with `adapter: "light"`
79
+ - ordinary markdown/wiki/HTML/PDF/office docs -> `ingest` with `adapter: "universal"` or `adapter: "auto"`
80
+ - Before risky edits, route through `impact`, `validate_plan`, and usually `surgical_context_v2`.
81
+ - In Codex, prefer `m1nd` for analysis, planning, and context. If the task requires local file edits under Codex's editing rules, use `apply_patch` for the final file mutation unless there is a specific reason to use `m1nd`'s write surfaces.
82
+
83
+ ## Fast Routing
84
+
85
+ - Unfamiliar repo or need a one-call orientation: use `audit`, then `batch_view`, `coverage_session`, or `cross_verify` as needed.
86
+ - Need a subsystem map: use `activate`.
87
+ - Need code by intent: use `seek`.
88
+ - Need why A connects to B: use `why`.
89
+ - Smells like missing validation, abstraction, cleanup, or lock: use `missing`.
90
+ - Have a stacktrace or runtime error text: use `trace`.
91
+ - Need blast radius before editing: use `impact`.
92
+ - Need co-change follow-through after editing: use `predict`.
93
+ - Need plan completeness and missing tests before implementation or review: use `validate_plan`.
94
+ - Need graph-native specs, design notes, or KB docs authored in `L1GHT`: ingest with `adapter: "light"` and usually `mode: "merge"`.
95
+ - Need regular spec/wiki/PDF/doc alignment with code: ingest with `adapter: "universal"` or `auto`, then use `document_resolve`, `document_bindings`, and `document_drift`.
96
+ - Need stateful navigation instead of stateless retrieval: use `perspective_*`.
97
+ - Need session continuity or handoff: use `trail_save`, `trail_list`, `trail_resume`, `trail_merge`, and sometimes `boot_memory`.
98
+ - Need background structural monitoring: use `daemon_start`, `daemon_status`, `daemon_tick`, `alerts_list`, and `alerts_ack`.
99
+
100
+ ## Read These References
101
+
102
+ - `references/routing-playbooks.md`
103
+ - Use for end-to-end workflows by task type: onboarding, bug triage, risky change prep, spec-to-code work, multi-agent sessions, and long-lived monitoring.
104
+ - `references/tool-families.md`
105
+ - Use for the complete capability map grouped by family, including the less obvious tools (`antibody_*`, `runtime_overlay`, `ghost_edges`, `flow_simulate`, `layers`, `refactor_plan`, etc.).
106
+ - `references/runtime-and-refresh.md`
107
+ - Use for local installation facts, current live-surface notes, the docs-vs-runtime count discrepancy, refresh procedure, and the helper script usage.
108
+ - `references/l1ght-and-docs.md`
109
+ - Use for the `L1GHT` mental model, marker vocabulary, header fields, `light` vs `universal`, and mixed code+docs graph workflows.
110
+
111
+ ## Local Helper
112
+
113
+ Use the bundled probe script from this skill directory whenever the live runtime matters more than remembered docs.
114
+
115
+ ```bash
116
+ python3 scripts/probe_m1nd.py tools
117
+ python3 scripts/probe_m1nd.py call health '{"agent_id":"codex-m1nd"}'
118
+ python3 scripts/probe_m1nd.py call trust_selftest '{"agent_id":"codex-m1nd"}'
119
+ python3 scripts/probe_m1nd.py call recovery_playbook '{"agent_id":"codex-m1nd","observed_tool":"seek","observed_proof_state":"blocked","observed_candidates":0}'
120
+ python3 scripts/probe_m1nd.py call help '{"agent_id":"codex-m1nd","tool_name":"validate_plan"}'
121
+ python3 scripts/probe_m1nd.py run '[{"name":"ingest","arguments":{"agent_id":"codex-m1nd","path":"/path/to/repo"}},{"name":"seek","arguments":{"agent_id":"codex-m1nd","query":"where retry backoff is decided","top_k":5}}]'
122
+ ```
123
+
124
+ For the m1nd repo itself, prefer the repo-local agent smoke harness when you
125
+ need to distinguish a real runtime problem from a host-provided MCP binding
126
+ problem:
127
+
128
+ ```bash
129
+ python3 scripts/mcp_agent_smoke.py --repo . --handshake-only --json
130
+ python3 scripts/mcp_agent_smoke.py --repo . --handshake-only --handshake-probe --json
131
+ python3 scripts/mcp_agent_smoke.py --repo . --json
132
+ python3 scripts/mcp_agent_smoke.py --repo . --transport http --json
133
+ ```
134
+
135
+ Use `trust_selftest` as the cheap default when exposed. The current binary also
136
+ exposes the sub-check as `session_handshake`; the harness calls both when
137
+ available and falls back for older binaries. The default path must stay
138
+ diagnostic-only: no ingest, no repair, and no retrieval probe by default.
139
+ `recovery_playbook` is the in-band next-step surface when the selftest,
140
+ handshake, or retrieval looks suspicious. Add `--handshake-probe` only when the
141
+ task depends on retrieval trust.
142
+
143
+ That harness proves the minimum trust loop over real Content-Length framed
144
+ stdio and the HTTP tool API:
145
+
146
+ ```text
147
+ initialize -> tools/list -> trust_selftest -> session_handshake -> recovery_playbook when needed -> ingest -> seek -> help -> doctor
148
+ ```
149
+
150
+ What the helper is for:
151
+
152
+ - confirming the local binary still responds
153
+ - listing the live tool surface
154
+ - detecting `degraded_host_tool_surface` when required tools such as `ingest`,
155
+ `seek`, `help`, `recovery_playbook`, or `doctor` are missing
156
+ - checking a tool's real response shape without relying on stale wiki prose
157
+ - catching graph/session continuity failures before falling back to broad shell
158
+ search
159
+
160
+ ## Working Posture
161
+
162
+ - Use `m1nd` when the question is about relationships, not just strings.
163
+ - Use `m1nd` first even when the answer might be textual, because `search`, `seek`, and `activate` can often narrow the surface before any shell reads.
164
+ - Use `m1nd` before big changes when hidden neighbors or missing tests could bite later.
165
+ - Use `m1nd` for continuity when the same investigation spans agents or sessions.
166
+ - Fall back to `rg`, direct file reads, compiler output, and runtime logs when execution truth is the real question.
@@ -0,0 +1,164 @@
1
+ # L1GHT And Document Lanes
2
+
3
+ This file captures the document side of `m1nd`, especially the distinction between the graph-native `L1GHT` lane and the more general `universal` document lane.
4
+
5
+ ## What L1GHT Is
6
+
7
+ `L1GHT` is a graph-native semantic markdown protocol.
8
+
9
+ Use it when the document is meant to be an active part of the graph, not just a file to canonicalize and later bind. In the repo's public description, `light` is "structured markdown with typed YAML frontmatter and inline semantic markers" that turns specs, design decisions, and knowledge bases into first-class graph nodes with typed edges.
10
+
11
+ Practical meaning:
12
+
13
+ - code and structured docs can live in the same graph
14
+ - `activate`, `seek`, and other structural tools can surface both implementation and semantic spec nodes together
15
+ - this is the right lane when the doc itself is authored as machine-legible graph material
16
+
17
+ ## When To Use `light` vs `universal`
18
+
19
+ Use `adapter: "light"` when:
20
+
21
+ - the markdown is intentionally authored in the `L1GHT` protocol
22
+ - the document should become graph-native semantic structure directly
23
+ - you want typed nodes and typed edges extracted from headers, sections, and inline semantic markers
24
+
25
+ Use `adapter: "universal"` or `adapter: "auto"` when:
26
+
27
+ - the source is ordinary markdown, wiki, HTML, PDF, office docs, or other non-L1GHT artifacts
28
+ - you want canonical local artifacts like `canonical.md`, `canonical.json`, and `claims.json`
29
+ - you want `document_resolve`, `document_bindings`, and `document_drift` on docs that were not authored as L1GHT
30
+
31
+ Short rule:
32
+
33
+ - authored graph-native spec -> `light`
34
+ - arbitrary doc you still want inside the graph -> `universal`
35
+
36
+ ## What The Local Adapter Actually Recognizes
37
+
38
+ From the current `m1nd-ingest/src/l1ght_adapter.rs` implementation:
39
+
40
+ - it accepts `.md` and `.markdown`
41
+ - it positively recognizes `Protocol: L1GHT/`
42
+ - it also heuristically recognizes L1GHT-like files when enough semantic markers exist
43
+
44
+ The current heuristic marker set includes:
45
+
46
+ - `[⍂ entity: ...]`
47
+ - `[⍐ state: ...]`
48
+ - `[⍌ event: ...]`
49
+ - `[𝔻 confidence: ...]`
50
+ - `[𝔻 ambiguity: ...]`
51
+ - `[𝔻 evidence: ...]`
52
+ - `[⟁ depends_on: ...]`
53
+ - `[⟁ binds_to: ...]`
54
+ - `[⟁ tests: ...]`
55
+ - `[RED blocker: ...]`
56
+ - `[AMBER warning: ...]`
57
+
58
+ ## Header Fields Understood By The Current Adapter
59
+
60
+ The adapter parses these header-level fields today:
61
+
62
+ - `Protocol:`
63
+ - `Node:`
64
+ - `State:`
65
+ - `Color:`
66
+ - `Glyph:`
67
+ - `Completeness:`
68
+ - `Proof:`
69
+ - `Depends on:`
70
+ - `Next:`
71
+
72
+ These become graph metadata nodes and/or typed edges.
73
+
74
+ Examples of edge semantics from the adapter:
75
+
76
+ - `depends_on` from header dependencies
77
+ - `next_binding` from `Next:`
78
+ - `defines_protocol`
79
+ - `has_state`
80
+ - `has_glyph`
81
+ - `has_color`
82
+ - generic `has_metadata`
83
+
84
+ ## Structural Materialization In The Graph
85
+
86
+ The current adapter creates graph-native structure from the markdown:
87
+
88
+ - the file becomes a canonical file node
89
+ - `##` headings become section nodes
90
+ - header metadata becomes concept/reference nodes
91
+ - inline semantic markers become typed concept or process nodes
92
+
93
+ Current inline relation mapping includes:
94
+
95
+ - `[⍂ entity: ...]` -> `declares_entity`
96
+ - `[⍐ state: ...]` -> `declares_state`
97
+ - `[⍌ event: ...]` -> `declares_event`
98
+ - `[⟁ depends_on: ...]` -> `depends_on`
99
+ - `[⟁ binds_to: ...]` -> `binds_to`
100
+ - `[⟁ tests: ...]` -> `declares_test`
101
+ - `[RED blocker: ...]` -> `declares_blocker`
102
+ - `[AMBER warning: ...]` -> `declares_warning`
103
+ - everything else falls back to `declares_metadata`
104
+
105
+ This means `L1GHT` is not "markdown plus tags"; it is a semantic ingest format that turns authored knowledge into graph structure.
106
+
107
+ ## Small Example
108
+
109
+ Illustrative shape from the docs:
110
+
111
+ ```text
112
+ ---
113
+ Protocol: L1GHT/1.0
114
+ Node: AuthService
115
+ State: production
116
+ Depends on:
117
+ - JWTService
118
+ - SessionStore
119
+ ---
120
+
121
+ ## Token Validation
122
+
123
+ The [⍂ entity: TokenValidator] runs HMAC-SHA256 checks.
124
+ [⟁ depends_on: RedisSessionStore]
125
+ [RED blocker: Connection pool not yet tuned for peak load]
126
+ ```
127
+
128
+ Typical mixed-graph use:
129
+
130
+ ```json
131
+ {"method":"tools/call","params":{"name":"ingest","arguments":{
132
+ "agent_id":"dev",
133
+ "path":"./src",
134
+ "adapter":"code",
135
+ "mode":"replace"
136
+ }}}
137
+
138
+ {"method":"tools/call","params":{"name":"ingest","arguments":{
139
+ "agent_id":"dev",
140
+ "path":"./docs/specs",
141
+ "adapter":"light",
142
+ "mode":"merge"
143
+ }}}
144
+ ```
145
+
146
+ After that, graph queries can land in code or L1GHT nodes from one search space.
147
+
148
+ ## How I Should Use This As An Agent
149
+
150
+ When a task involves docs, specs, or conceptual design artifacts:
151
+
152
+ 1. Ask whether the source is authored as `L1GHT` or is just a regular document.
153
+ 2. If it is `L1GHT`, prefer `ingest` with `adapter: "light"` and usually `mode: "merge"`.
154
+ 3. If it is regular documentation, prefer `adapter: "universal"` or `auto`.
155
+ 4. Query the combined graph with `search`, `seek`, `activate`, `impact`, or `validate_plan` before falling back to manual document reading.
156
+
157
+ ## Important Distinction To Remember
158
+
159
+ `L1GHT` and `document_*` are related but not identical concerns.
160
+
161
+ - `L1GHT` is an authored semantic document protocol that becomes graph-native directly.
162
+ - `document_*` tools are most relevant for universal-document handling, canonical artifacts, and doc-to-code binding/drift workflows.
163
+
164
+ So if the user says "spec" or "wiki", do not assume `universal` immediately. First check whether the material is already authored in `L1GHT`.