@n8r/surface 0.0.0-stage → 0.1.0-experimental.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/LICENSE +202 -0
- package/LICENSE-DOCS +395 -0
- package/LICENSING.md +36 -0
- package/README.md +181 -2
- package/dist/activity.d.ts +16 -0
- package/dist/activity.js +44 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +260 -0
- package/dist/codec.d.ts +4 -0
- package/dist/codec.js +41 -0
- package/dist/codex.d.ts +72 -0
- package/dist/codex.js +510 -0
- package/dist/contracts.d.ts +129 -0
- package/dist/contracts.js +1 -0
- package/dist/html.d.ts +5 -0
- package/dist/html.js +50 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +5 -0
- package/dist/notes.d.ts +52 -0
- package/dist/notes.js +184 -0
- package/dist/portable.d.ts +10 -0
- package/dist/portable.js +71 -0
- package/dist/revisions.d.ts +2 -0
- package/dist/revisions.js +18 -0
- package/dist/settings.d.ts +23 -0
- package/dist/settings.js +100 -0
- package/dist/setup.d.ts +9 -0
- package/dist/setup.js +161 -0
- package/dist/source-tools.d.ts +102 -0
- package/dist/source-tools.js +201 -0
- package/dist/startup.d.ts +7 -0
- package/dist/startup.js +74 -0
- package/dist/surface-draft.d.ts +19 -0
- package/dist/surface-draft.js +95 -0
- package/dist/surface-instructions.d.ts +2 -0
- package/dist/surface-instructions.js +23 -0
- package/dist/surface-store.d.ts +36 -0
- package/dist/surface-store.js +181 -0
- package/dist/validate.d.ts +4 -0
- package/dist/validate.js +184 -0
- package/docs/n8r-surface/README.md +133 -0
- package/docs/n8r-surface/codex-research-transcript.md +51 -0
- package/docs/n8r-surface/codex-research-verification.md +176 -0
- package/docs/n8r-surface/command-outcomes.md +564 -0
- package/docs/n8r-surface/contracts.md +210 -0
- package/docs/n8r-surface/critical-path.md +163 -0
- package/docs/n8r-surface/design.md +289 -0
- package/docs/n8r-surface/getting-started.md +107 -0
- package/docs/n8r-surface/host-contract.md +176 -0
- package/docs/n8r-surface/implementation-decisions.md +96 -0
- package/docs/n8r-surface/npm-distribution.md +137 -0
- package/docs/n8r-surface/npm-release.md +188 -0
- package/docs/n8r-surface/recreation-handoff.md +117 -0
- package/docs/n8r-surface/researcher-discovery.md +157 -0
- package/docs/n8r-surface/researcher-prepared-check.md +117 -0
- package/docs/n8r-surface/researcher-reconciliation-trial.md +149 -0
- package/docs/n8r-surface/researcher-repository-check.md +95 -0
- package/docs/n8r-surface/researcher-skeleton-check.md +84 -0
- package/docs/n8r-surface/researcher-skill-verification.md +725 -0
- package/docs/n8r-surface/researcher-skill.md +255 -0
- package/docs/n8r-surface/researcher-vault.md +134 -0
- package/docs/n8r-surface/save-reopen-transcript.md +211 -0
- package/docs/n8r-surface/save-reopen-verification.md +152 -0
- package/docs/n8r-surface/startup-human-check.md +172 -0
- package/docs/n8r-surface/startup-verification.md +161 -0
- package/docs/n8r-surface/startup.md +151 -0
- package/docs/n8r-surface/surface-revisions-transcript.md +552 -0
- package/docs/n8r-surface/surface-revisions-verification.md +161 -0
- package/docs/n8r-surface/vault-setup-verification.md +210 -0
- package/docs/n8r-surface/verification.md +117 -0
- package/docs/n8r-surface/versioning.md +183 -0
- package/examples/researcher/README.md +92 -0
- package/examples/researcher/composed.surface.json +430 -0
- package/examples/researcher/composed.surface.yaml +283 -0
- package/examples/researcher/harbor-r1.research.html +193 -0
- package/examples/researcher/harbor-r2.research.html +226 -0
- package/examples/researcher/lumen-manual-edit.pending.html +271 -0
- package/examples/researcher/lumen-r1.research.html +271 -0
- package/examples/researcher/lumen-r2.research.html +280 -0
- package/examples/researcher/sources/harbor-api.md +16 -0
- package/examples/researcher/sources/harbor-auth.md +8 -0
- package/examples/researcher/sources/lumen-guide.md +28 -0
- package/examples/researcher/sources/lumen-settings.md +9 -0
- package/package.json +45 -4
- package/plugins/n8r-surface/.codex-plugin/plugin.json +31 -0
- package/plugins/n8r-surface/LICENSE +202 -0
- package/plugins/n8r-surface/LICENSE-DOCS +395 -0
- package/plugins/n8r-surface/LICENSING.md +36 -0
- package/plugins/n8r-surface/assets/icon.svg +5 -0
- package/plugins/n8r-surface/plugin.json +27 -0
- package/plugins/n8r-surface/skills/research/SKILL.md +122 -0
- package/plugins/n8r-surface/skills/research/agents/openai.yaml +4 -0
- package/plugins/n8r-surface/skills/research/references/discovery-map.md +160 -0
- package/plugins/n8r-surface/skills/research/references/model-meanings.md +55 -0
- package/plugins/n8r-surface/skills/research/references/skeleton-surface.md +105 -0
- package/plugins/n8r-surface/skills/research/references/working-notes.md +116 -0
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# AI Surface discovery guide
|
|
2
|
+
|
|
3
|
+
The goal is an evidence-backed graph of AI-relevant components and connections,
|
|
4
|
+
not a complete application inventory. Follow how information enters, reaches
|
|
5
|
+
models/tools/data, and produces effects. Include supporting storage, identity,
|
|
6
|
+
infrastructure and observability when they explain those paths or boundaries.
|
|
7
|
+
Settings are supporting evidence: inspect them when they change a node, edge,
|
|
8
|
+
route, authority, data flow or a material uncertainty about the graph.
|
|
9
|
+
|
|
10
|
+
This is provisional research guidance within the AI Surface Model, not another
|
|
11
|
+
model, a universal schema or a mandatory list of components.
|
|
12
|
+
|
|
13
|
+
## Start with the available evidence
|
|
14
|
+
|
|
15
|
+
Establish the task: **discover** a graph, **continue** saved research, or
|
|
16
|
+
**reconcile** an existing Surface with current evidence. Honor a bounded question.
|
|
17
|
+
For broad requests, identify the application boundary and shallow AI-related
|
|
18
|
+
connections before detailed subsystem research. Degree is relative to the start
|
|
19
|
+
node; follow a useful route beyond one hop without imposing a depth ceiling.
|
|
20
|
+
|
|
21
|
+
| Available material | Use and limit |
|
|
22
|
+
| --- | --- |
|
|
23
|
+
| Unknown folder | Inspect structure, entry points and manifests to locate evidence of AI relevance. Unread files and dependency names are clues, not findings. |
|
|
24
|
+
| Code without docs | Follow calls, configuration readers and dependencies relevant to graph edges; runtime state remains separate. |
|
|
25
|
+
| Docs without code | Use navigation, headings and examples to map documented capabilities; implementation and effective setup remain unverified. |
|
|
26
|
+
| Local/remote documentation | Follow relevant links into source or setup material. Record the URL, applicable version, section and inspection time; current vendor docs may describe another release. |
|
|
27
|
+
| Product guide or earlier research | Reuse navigation, evidence and gaps after checking identity, scope and revision. Distinguish inherited from rechecked findings. |
|
|
28
|
+
| Surface definition(s) | Establish each composition's identity and claims. Compare applicable claims; omitted detail is not absence. |
|
|
29
|
+
| Supplied configuration | Establish environment, revision, defaults and overrides when relevant. An example is not a selected setup; a file is not proof it was loaded. |
|
|
30
|
+
| Human input | Record scoped intent, corrections and decisions separately from source or runtime evidence. |
|
|
31
|
+
| Live UI/API observations | Identify the target environment and dated observed settings; reading a setting does not exercise its connection. |
|
|
32
|
+
|
|
33
|
+
Use what is available. Record unavailable, unreadable, excluded or truncated
|
|
34
|
+
material without inventing its contents. A locator does not grant access.
|
|
35
|
+
Enough evidence for the user's question, with visible gaps, is a useful stopping
|
|
36
|
+
point; obtaining every source type is not a completion requirement.
|
|
37
|
+
|
|
38
|
+
## Reuse product knowledge
|
|
39
|
+
|
|
40
|
+
Look for related material in supplied notes, selected local libraries or a
|
|
41
|
+
connected collection that the host can actually search. Do not scan unrelated
|
|
42
|
+
folders/accounts or presume an n8r-labs connection. A simple index of versioned
|
|
43
|
+
documents and links is sufficient; this skill creates no registry service.
|
|
44
|
+
|
|
45
|
+
Distinguish a product guide (capabilities/navigation), a particular selected
|
|
46
|
+
Surface (composition), and research (evidence/decisions/gaps). Match repository
|
|
47
|
+
identity, forks, releases and scope rather than a display name alone. An older
|
|
48
|
+
guide can direct reads without establishing current behavior. Several Surfaces
|
|
49
|
+
may select different providers; never union their selections into one deployment.
|
|
50
|
+
Retain provenance and contradictions. A library's origin is not automatic
|
|
51
|
+
authority, and a note repeating a source is not independent corroboration.
|
|
52
|
+
|
|
53
|
+
When saving, retain reusable product findings separately from private deployment
|
|
54
|
+
choices. Making private research public requires its own authorization.
|
|
55
|
+
|
|
56
|
+
## Follow graph clues
|
|
57
|
+
|
|
58
|
+
Documentation indexes and navigation often provide the first paths. Follow
|
|
59
|
+
relevant headings, setup examples and links into code. When links are absent,
|
|
60
|
+
search distinctive configuration keys, symbols and route names. If documentation
|
|
61
|
+
is absent, use entry points and manifests. Read scripts as evidence; do not run
|
|
62
|
+
them merely to discover architecture.
|
|
63
|
+
|
|
64
|
+
| Area | Clue leads to next useful read |
|
|
65
|
+
| --- | --- |
|
|
66
|
+
| Inputs and effects | Web/chat UI, API, CLI, bot, upload, webhook or scheduled task → handler → AI processing and returned result/action. A generic UI alone is not AI evidence. |
|
|
67
|
+
| Models and inference | Inference call or endpoint → configuration source → proxy/router/aggregator → service → model identity. Cover embeddings, speech, vision and other AI operations, not only chat. A provider SDK or compatible API does not identify the service behind a custom URL. |
|
|
68
|
+
| Agents and orchestration | Prompt/workflow/agent definition → context assembly, model selection, delegation, tools and stopping conditions relevant to connections. |
|
|
69
|
+
| Tools and actions | MCP or other integration → host/client/server role, exposed/consumed capability, transport, executor, target and authority. SDK installation alone does not establish a configured connection. |
|
|
70
|
+
| Knowledge and retrieval | Upload/source connector → parsing/chunking → embeddings/index/store → retrieval/reranking → model context. RAG need not be a separate server; identify who provides and consumes each capability. |
|
|
71
|
+
| State and storage | Conversation, memory or document persistence call → storage adapter → configured store. Include a database such as MongoDB for its AI-related data role; avoid unrelated application tables. |
|
|
72
|
+
| Identity and controls | Login/provider gate, permission check or approval → identity/authority boundary governing relevant access and actions. OIDC enablement and issuer can explain an edge; credential values do not belong in the graph. |
|
|
73
|
+
| Observability and evaluation | Tracing/evaluation hook → instrumentation → destination and covered AI operations. A logging dependency alone does not establish a live telemetry connection. |
|
|
74
|
+
| Software identity and delivery | Manifest, lockfile, entry point, container or deployment declaration → relevant component/version/runtime and configuration binding. These support graph identity; do not enumerate every package or setting. |
|
|
75
|
+
|
|
76
|
+
For example, `package.json` suggests JavaScript package/tooling context. Inspect
|
|
77
|
+
scripts, engines, workspaces and relevant imports before inferring a runtime;
|
|
78
|
+
it may describe browser tooling alongside a Python service. Keep application,
|
|
79
|
+
package, source revision, deployed build and model versions distinct.
|
|
80
|
+
|
|
81
|
+
A CRM can have no identified AI capability in the inspected scope, or participate
|
|
82
|
+
as an evidenced tool/data source in a larger AI Surface. Neither a database nor a
|
|
83
|
+
generic API alone establishes AI membership. Report scoped negative findings and
|
|
84
|
+
insufficient evidence distinctly; do not force an AI graph into every repository.
|
|
85
|
+
|
|
86
|
+
## Reconcile a Surface with current sources
|
|
87
|
+
|
|
88
|
+
Preserve the supplied bytes and establish format/version, vocabulary, component
|
|
89
|
+
identity, scope and intended versus observed meaning. Only claim validation for
|
|
90
|
+
a supported format actually checked. Unrecognized meanings remain unsupported;
|
|
91
|
+
successful JSON parsing does not make arbitrary Surface JSON understood.
|
|
92
|
+
|
|
93
|
+
Use the graph as the comparison spine. For each relevant node/edge or supporting
|
|
94
|
+
setting, report: prior claim and basis; current evidence and applicability;
|
|
95
|
+
agreement, difference, additional discovery, conflict, unknown or unsupported
|
|
96
|
+
meaning; and the next useful check. These are prose comparison outcomes, not new
|
|
97
|
+
contract states. Missing search hits or omitted attributes do not establish that
|
|
98
|
+
a node/edge was removed. Preserve stable identities where evidence supports them.
|
|
99
|
+
|
|
100
|
+
Compare like with like: documented support, implemented support, human intent,
|
|
101
|
+
declared configuration, observed effective configuration, reachability and
|
|
102
|
+
exercised behavior answer different questions. Example: a baseline selects OIDC;
|
|
103
|
+
current code supports OIDC; a staging file declares it disabled. That can establish
|
|
104
|
+
a declared difference for the same staging target, but not its running state or
|
|
105
|
+
that the historical baseline was wrong. Locate applicable override/effective
|
|
106
|
+
evidence if that distinction matters. Do not dump unrelated settings into the diff.
|
|
107
|
+
|
|
108
|
+
Save the comparison as research. A proposed successor must preserve the original,
|
|
109
|
+
its evidence and unresolved claims. This skill does not emit validated experimental
|
|
110
|
+
Surface JSON/HTML or modify deployments.
|
|
111
|
+
|
|
112
|
+
## Inspect live connections with the human
|
|
113
|
+
|
|
114
|
+
Use live inspection when the user's task calls for it and the host provides
|
|
115
|
+
authorized access. Establish the selected application, environment/tenant and
|
|
116
|
+
question from available context; ask only for missing information needed to
|
|
117
|
+
identify the target. Prefer a suitable connected read tool or documented admin
|
|
118
|
+
API; use browser/computer tools where they provide the required access. Respect
|
|
119
|
+
the tools' scopes and restrictions. A blocked route must not be bypassed.
|
|
120
|
+
|
|
121
|
+
Let the user complete password, MFA or private sign-in flows directly using the
|
|
122
|
+
host's supported handoff. Do not ask for credentials in chat, extract sessions,
|
|
123
|
+
reveal masked secrets, export credentials or copy passwords/keys/tokens into
|
|
124
|
+
notes. Prefer narrow nonsecret fields or settings views to raw configuration
|
|
125
|
+
dumps. If incidental secrets appear, do not repeat or retain them. Avoid saving
|
|
126
|
+
screenshots or payloads containing secrets; record a sanitized observation and
|
|
127
|
+
its location, with the resulting evidence limitation.
|
|
128
|
+
|
|
129
|
+
Ask graph questions: is this connection enabled; which service/issuer is the
|
|
130
|
+
target; what role, protocol and authority does it use? A masked configured-secret
|
|
131
|
+
indicator may establish presence, never credential validity. Keep target identity
|
|
132
|
+
as specific as needed in private notes; redact sensitive infrastructure details
|
|
133
|
+
from portable/shared output and keep the stable component ID.
|
|
134
|
+
|
|
135
|
+
Remain read-only: do not toggle/save settings, reveal secrets, rotate keys,
|
|
136
|
+
create clients or invoke a connection test as part of inspection. Those are
|
|
137
|
+
separate user tasks. Do not invent API endpoints or assume any product exposes
|
|
138
|
+
all its configuration through an admin UI.
|
|
139
|
+
|
|
140
|
+
Record the actual page/section or API operation, environment, time, available
|
|
141
|
+
version and nonsecret result. Distinguish an editable stored setting from a
|
|
142
|
+
runtime-effective setting. Re-read the relevant view/field when verifying the
|
|
143
|
+
observation; inaccessible fields remain unknown. Keep source declarations and
|
|
144
|
+
earlier observations even when they disagree. Live settings are dated evidence,
|
|
145
|
+
not proof of a successful login, inference call, database query or complete setup.
|
|
146
|
+
|
|
147
|
+
## Present and retain the graph
|
|
148
|
+
|
|
149
|
+
Lead with a compact graph or edge table: stable components, directed/purposed
|
|
150
|
+
connections, evidence basis and unresolved endpoints. Put supported alternatives
|
|
151
|
+
in a separate view/list from selected composition. Label a connection as declared
|
|
152
|
+
only when an applicable declaration supports it; keep possibilities, inferences
|
|
153
|
+
and unresolved clues explicit. Do not turn a UI settings read into an exercised edge. Include shared
|
|
154
|
+
components and useful deeper routes without inventing separate services for every
|
|
155
|
+
route, configuration key or package. Keep graph-relevant settings beside the edge
|
|
156
|
+
they explain, followed by evidence, coverage and the next consequential question.
|
|
157
|
+
|
|
158
|
+
Use the [working-note convention](working-notes.md) for durable progress. Sources
|
|
159
|
+
and observation summaries may be incomplete; a successful save does not establish
|
|
160
|
+
runtime behavior, universal compatibility or security certification.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# AI Surface Model meanings
|
|
2
|
+
|
|
3
|
+
The AI Surface Model describes connected components, configuration and relationships
|
|
4
|
+
at the detail available or useful. A language model is a component described by
|
|
5
|
+
it. There is one AI Surface Model; Lab and Experiment are descriptions within it.
|
|
6
|
+
A Lab contains Experiments. Each Experiment owns its desired setup and selected
|
|
7
|
+
Surface revision and requests resource configuration directly from its Lab.
|
|
8
|
+
The Lab owns resource configuration and local bindings. Lab / Lab Assistant
|
|
9
|
+
share one entity. The ownership chain is Lab → Experiment → Setup.
|
|
10
|
+
Bench is retired; preserve historical references as historical evidence, never
|
|
11
|
+
as current ownership or authority. Do not invent a hierarchy when it is outside
|
|
12
|
+
the supplied investigation.
|
|
13
|
+
|
|
14
|
+
Partial knowledge is useful. Preserve these distinct meanings:
|
|
15
|
+
|
|
16
|
+
| Meaning | Use |
|
|
17
|
+
| --- | --- |
|
|
18
|
+
| Known | Supported by identified evidence with a stated scope. |
|
|
19
|
+
| Unknown | The question is relevant but available evidence does not answer it. |
|
|
20
|
+
| Omitted | Deliberately left out of this description. |
|
|
21
|
+
| Redacted | Known detail withheld, such as sensitive values. |
|
|
22
|
+
| Absent | Evidence establishes absence within a specific scope. |
|
|
23
|
+
| Out of scope | Not part of the selected investigation. |
|
|
24
|
+
|
|
25
|
+
A missing field or uninspected directory does not establish absence. Evidence
|
|
26
|
+
that a product supports OIDC does not establish that this user enabled it.
|
|
27
|
+
Two HTTP routes can belong to the same service. Keep shared components, parallel
|
|
28
|
+
connections and cycles; depth is relative to a starting point, not a fixed limit.
|
|
29
|
+
Assign simple stable local labels such as `component:identity` when findings will
|
|
30
|
+
be saved or continued; add detail without silently replacing the entity.
|
|
31
|
+
|
|
32
|
+
Keep definitions separate from deployments, observations and Experiment Runs.
|
|
33
|
+
A declared connection, a reachable endpoint and an exercised interaction are
|
|
34
|
+
three different evidence claims. Source reading alone establishes none of the
|
|
35
|
+
runtime claims. Later findings must not silently rewrite what an earlier result
|
|
36
|
+
referred to. Record source, time, applicable revision and limits.
|
|
37
|
+
|
|
38
|
+
Interoperability is a bounded, versioned mapping with explicit losses. Matching
|
|
39
|
+
names, parsing JSON or reading a schema does not establish compatibility or
|
|
40
|
+
successful recreation. Distinguish a product possibility from a selected setup.
|
|
41
|
+
|
|
42
|
+
Named output profiles select content within this one model. Size, purpose and
|
|
43
|
+
deployment knowledge are independent. A profile version identifies output rules;
|
|
44
|
+
Surface definition and setup/binding revisions identify the described state.
|
|
45
|
+
Preserve those revisions and prior Run attribution when adding detail or bindings.
|
|
46
|
+
The [skeleton procedure](skeleton-surface.md) defines the provisional brief and
|
|
47
|
+
explicit reconciliation lifecycle. Detailed and recreation profiles remain future
|
|
48
|
+
directions, not implemented contracts.
|
|
49
|
+
|
|
50
|
+
This bundled reference records the draft meanings for skill 0.1.8. The repository's
|
|
51
|
+
[draft concepts](https://github.com/injectionator/n8r-surface/blob/main/spec/README.md)
|
|
52
|
+
are a moving source link; use the installed package version and digest to identify
|
|
53
|
+
the instructions actually used. Fields and serialization remain provisional. Maintainers must update this
|
|
54
|
+
reference with semantic changes; consumers do not need the source checkout to
|
|
55
|
+
read it.
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Skeleton Surface v0.1
|
|
2
|
+
|
|
3
|
+
This is a provisional output profile within the AI Surface Model. Produce a
|
|
4
|
+
compact Markdown Surface working draft, not validated JSON/HTML or a deployment
|
|
5
|
+
recipe. The profile version describes these rules; the skill version identifies
|
|
6
|
+
the instructions used. Neither is the revision of the particular Surface/setup.
|
|
7
|
+
|
|
8
|
+
## Select and bound the brief
|
|
9
|
+
|
|
10
|
+
Use this profile when asked for a skeleton or brief Surface. Broad discovery
|
|
11
|
+
starts shallow; a narrow question takes precedence over a general inventory.
|
|
12
|
+
Security is the focus of this profile, while the model supports other purposes.
|
|
13
|
+
The useful question is: where could a security integration inspect or intervene
|
|
14
|
+
in LLM and actual tool calls, with what powers, coverage and gaps?
|
|
15
|
+
|
|
16
|
+
Retain a node or distinction when removing it hides a key capability, a material
|
|
17
|
+
security boundary, or a place an Experiment could change or observe behavior.
|
|
18
|
+
Keep required supporting roles such as application persistence when they explain
|
|
19
|
+
the setup. Features can be capability nodes; do not turn every setting into a node.
|
|
20
|
+
Use a role such as MCP server or vector store when no instance is selected. Source
|
|
21
|
+
evidence may identify supported products/transports without identifying a binding.
|
|
22
|
+
An empty template field does not establish that every deployment lacks a binding.
|
|
23
|
+
|
|
24
|
+
Preserve stable node and relationship identities from supplied descriptions.
|
|
25
|
+
Different serialization or vocabulary requires an explicit mapping, not silent
|
|
26
|
+
renaming. Keep shared nodes, parallel routes and cycles. A historical claim not
|
|
27
|
+
re-established at the selected revision must stay qualified or move to a clearly
|
|
28
|
+
linked historical/gap record; it cannot become a current supported capability.
|
|
29
|
+
|
|
30
|
+
## Keep the graph small without losing meaning
|
|
31
|
+
|
|
32
|
+
Lead with a short identity/scope line and a graph or edge table. Retain source
|
|
33
|
+
revision, Surface revision and profile name/version. Show key nodes, directed
|
|
34
|
+
relationships, purposes and relevant execution/authority boundaries. Label
|
|
35
|
+
supported possibilities separately from selected composition and observed setup.
|
|
36
|
+
No source-only graph establishes reachability or exercise.
|
|
37
|
+
|
|
38
|
+
Use concise claim references to linked research or source sections. Identify the
|
|
39
|
+
supporting revision and locator where available. Summarize coverage and unresolved
|
|
40
|
+
questions once where shared; retain exceptions beside the affected edge. Avoid
|
|
41
|
+
repeating boilerplate unknown bindings for every node, but never make an omitted
|
|
42
|
+
value imply absence. No arbitrary node count, depth ceiling or file-size minimum
|
|
43
|
+
applies. A smaller output is not permission to discard a condition or bypass.
|
|
44
|
+
|
|
45
|
+
| In the brief | In linked records |
|
|
46
|
+
| --- | --- |
|
|
47
|
+
| Nodes, directed edges, roles, material conditions and uncertainty | Detailed source excerpts, inspected ranges and investigation narrative |
|
|
48
|
+
| Claim basis and usable evidence references | Full provenance, conflicts and supporting findings |
|
|
49
|
+
| Interception location, visibility, powers and coverage gaps | Hook signatures, configuration details and vendor compatibility research |
|
|
50
|
+
| Binding status and reference when relevant | Protected resource bindings, nonsecret configuration and secret requirements/references |
|
|
51
|
+
| Observation summary with applicability, when supplied | Dated runtime observations, traces, tests and Experiment Run results |
|
|
52
|
+
|
|
53
|
+
Use existing evidence records when they suffice. Do not create a large companion
|
|
54
|
+
record just to satisfy a template; direct versioned source references can suffice.
|
|
55
|
+
Keep links portable or state which accompanying files are needed. Never invent
|
|
56
|
+
records or imply their contents were read. Credential values do not belong in
|
|
57
|
+
the brief or research evidence.
|
|
58
|
+
|
|
59
|
+
## Map interception opportunities
|
|
60
|
+
|
|
61
|
+
For each relevant candidate, state compactly:
|
|
62
|
+
|
|
63
|
+
- **Location and stage:** node/edge, before/after model dispatch or tool execution.
|
|
64
|
+
- **Visible context:** messages, tool arguments/results, principal, or unknown.
|
|
65
|
+
- **Powers:** observe, modify, block or require approval, only as supported.
|
|
66
|
+
- **Coverage:** covered routes, conditions, bypasses and unresolved continuations.
|
|
67
|
+
- **Basis:** proposed placement, documented/implemented extension, configured
|
|
68
|
+
integration, or exercised behavior; link evidence and preserve its limits.
|
|
69
|
+
|
|
70
|
+
A proxy only sees traffic routed through it. Seeing tool schemas, model-proposed
|
|
71
|
+
calls or returned results in model traffic does not prove mediation of the actual
|
|
72
|
+
tool invocation or downstream effects. Trace the tool executor separately. Keep
|
|
73
|
+
browser-direct routes, scheduled workers and other known alternate paths visible.
|
|
74
|
+
|
|
75
|
+
A hook's presence does not establish its timing, veto power or complete coverage.
|
|
76
|
+
A sidecar is placement, not an interception mechanism: identify routing, hooks or
|
|
77
|
+
event delivery and how a decision reaches execution. Observation-only telemetry
|
|
78
|
+
is not enforcement. Record failure behavior if known, or as a gap relevant to
|
|
79
|
+
later setup selection; a documented claim is not a runtime test.
|
|
80
|
+
|
|
81
|
+
Record potential cross-service observation points and correlation gaps without
|
|
82
|
+
claiming end-to-end trace coverage. Do not select a vendor or infer product
|
|
83
|
+
compatibility from names or protocols. If evidence supports only an opportunity,
|
|
84
|
+
say so. Stop once the brief answers the question with gaps visible. Do not install,
|
|
85
|
+
bind resources, configure proxies/hooks or run integration tests as part of it.
|
|
86
|
+
|
|
87
|
+
## Continue and reconcile
|
|
88
|
+
|
|
89
|
+
Size and deployment knowledge are independent. A bound setup can have a skeleton;
|
|
90
|
+
a detailed product description can remain unbound. When saving or continuing,
|
|
91
|
+
follow [working notes](working-notes.md), preserving predecessors and evidence.
|
|
92
|
+
|
|
93
|
+
For Lab-managed changes, the intended consumer behavior is to record a successor
|
|
94
|
+
setup/binding revision with the change and its evidence; an Experiment requests
|
|
95
|
+
resources from its Lab, which owns bindings. This skill does not implement that
|
|
96
|
+
automation. A request is not proof that configuration succeeded. Keep effective
|
|
97
|
+
setup unknown until supported by observation.
|
|
98
|
+
|
|
99
|
+
Changes outside the Lab do not automatically update saved descriptions. On an
|
|
100
|
+
explicit reconciliation request, read current identified evidence, compare it
|
|
101
|
+
with the predecessor and save an authorized successor. Preserve stable identities,
|
|
102
|
+
explain changed declarations/bindings and retain uncertainty about effective use.
|
|
103
|
+
Reference an unchanged definition when only bindings change; use a successor
|
|
104
|
+
definition when composition or intended settings change. Keep profile version
|
|
105
|
+
unchanged unless the output rules change. Do not retrospectively rebind prior Runs.
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Working research notes
|
|
2
|
+
|
|
3
|
+
Use Markdown for the first portable research increment. These are readable
|
|
4
|
+
working notes, not a released interchange schema or a validated experimental
|
|
5
|
+
HTML/Surface artefact. Use the user's requested prose format when practical;
|
|
6
|
+
retain the same evidence and limitations. Do not impose a large empty template.
|
|
7
|
+
|
|
8
|
+
## Where notes live
|
|
9
|
+
|
|
10
|
+
Use a user-selected destination first. When an applicable vault convention places
|
|
11
|
+
Surface descriptions under `surfaces/<source-slug>/`, propose a numbered file
|
|
12
|
+
such as `surface-draft-001.md` there. A save offer does not create directories or
|
|
13
|
+
files; wait for acceptance. Without that convention, use the default below for
|
|
14
|
+
the same Markdown working draft. When continuing a saved note, use its
|
|
15
|
+
folder unless the user requests a move. Otherwise, on a host with a persistent
|
|
16
|
+
user-owned local filesystem, use:
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
~/Documents/n8r-surface/research/<source-slug>/<topic>-001.md
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Derive short lowercase hyphenated slugs from the source and question. For a
|
|
23
|
+
LibreChat authentication investigation, use `librechat/authentication-001.md`.
|
|
24
|
+
Resolve the user's actual home directory through the host, expand `~`, and show
|
|
25
|
+
the absolute folder and filename before writing. Create missing directories as
|
|
26
|
+
part of an authorized save. Keep that local locator in the conversation, not in
|
|
27
|
+
portable note content. Do not treat a temporary execution container as the user's
|
|
28
|
+
persistent filesystem. If local saving is unavailable, explain that limitation
|
|
29
|
+
and offer a named Markdown download or text without claiming the default exists.
|
|
30
|
+
|
|
31
|
+
List existing notes for that topic first. Use the next unused three-digit number
|
|
32
|
+
(`002`, `003`, and so on; grow beyond three digits if needed). An existing filename
|
|
33
|
+
is never permission to overwrite. For continuation, read the predecessor and any
|
|
34
|
+
human edits, name it in the successor and record the change. Recheck its bytes
|
|
35
|
+
before saving; if they changed, reread and reconcile before choosing a new output.
|
|
36
|
+
Check that existing notes describe the same source before continuing them;
|
|
37
|
+
matching directory names alone do not establish source identity.
|
|
38
|
+
|
|
39
|
+
Provide the actual saved file as a clickable link after readback. On a local
|
|
40
|
+
host, use an absolute file link. The user should be able to open it without
|
|
41
|
+
searching the plugin cache or scrolling back through tool output. Skill removal
|
|
42
|
+
must leave this research folder and every previous note intact.
|
|
43
|
+
|
|
44
|
+
## What a note retains
|
|
45
|
+
|
|
46
|
+
A saved note should let another person or a fresh chat continue the task:
|
|
47
|
+
|
|
48
|
+
- Identify the question, scope, date, skill version and host/tool capabilities
|
|
49
|
+
actually used. Do not guess a hidden model ID or application version.
|
|
50
|
+
- Identify the supplied sources using portable relative names or public locators.
|
|
51
|
+
Record available revision/version information and exact hashes for inspected
|
|
52
|
+
files when supported. Explicitly mark unavailable identity evidence.
|
|
53
|
+
- Lead with the partial AI Surface graph or edge table, stable component labels
|
|
54
|
+
and evidence locations. Keep supported possibilities separate from selected
|
|
55
|
+
connections. Include only settings needed to explain the graph, not an app-wide
|
|
56
|
+
configuration inventory.
|
|
57
|
+
- Preserve conflicting claims, unknowns, coverage limits and scoped absences.
|
|
58
|
+
- Retain human decisions and unanswered questions separately from source evidence.
|
|
59
|
+
- State what was actually read or exercised and what remains to be done. Include
|
|
60
|
+
**Recommended next steps** as described below, and a useful next question when
|
|
61
|
+
a user decision is needed.
|
|
62
|
+
|
|
63
|
+
Keep source links usable when the notes are moved, or explain what accompanying
|
|
64
|
+
source files are needed. Do not copy whole repositories or credentials into the
|
|
65
|
+
notes. A source digest identifies bytes, not truth, completeness or compatibility.
|
|
66
|
+
|
|
67
|
+
## Recommended next steps
|
|
68
|
+
|
|
69
|
+
Include a **Recommended next steps** section in the latest Surface note for the
|
|
70
|
+
same source and scope. If no Surface note exists, include it in the latest research
|
|
71
|
+
note. A Surface note here is a saved prose description of the Surface; this rule
|
|
72
|
+
does not add validated structured-output support or require creating one.
|
|
73
|
+
|
|
74
|
+
For each recommendation, state:
|
|
75
|
+
|
|
76
|
+
- **Next investigation:** the concrete question or connection to investigate.
|
|
77
|
+
- **Why it matters:** which uncertainty or user decision it would resolve.
|
|
78
|
+
- **Where to resume:** the relevant source file/section, component ID, saved note
|
|
79
|
+
or permitted view, plus any access or missing evidence needed to proceed.
|
|
80
|
+
|
|
81
|
+
Use portable references, not local absolute paths or credentials. For example:
|
|
82
|
+
|
|
83
|
+
> **Next investigation:** establish the selected document-search target.
|
|
84
|
+
> **Why it matters:** the optional search path has no address in the supplied
|
|
85
|
+
> settings, so its selected connection remains unresolved.
|
|
86
|
+
> **Where to resume:** `current.env`, `DOCUMENT_SEARCH_URL`, and `system.md` →
|
|
87
|
+
> Uploaded documents; request applicable deployment settings if available.
|
|
88
|
+
|
|
89
|
+
When continuing, read this section alongside the predecessor and human edits,
|
|
90
|
+
re-establish source identity, and use it to choose the next investigation within
|
|
91
|
+
the user's current scope. Recommendations are proposed work, not permission for
|
|
92
|
+
new access or evidence that a connection exists. If the needed evidence is
|
|
93
|
+
unavailable, retain the blocker and a concrete resumption point.
|
|
94
|
+
|
|
95
|
+
In the saved successor, update the section to reflect what was resolved, what
|
|
96
|
+
remains and the next useful investigation. Explain a changed priority or superseded
|
|
97
|
+
recommendation briefly. Preserve earlier notes unchanged. If an older note has
|
|
98
|
+
no recommendations, derive them from its supported gaps and current evidence in
|
|
99
|
+
the successor; do not retrofit the predecessor. If no further investigation is
|
|
100
|
+
needed within scope, say so and explain why rather than inventing work.
|
|
101
|
+
|
|
102
|
+
## Save and read back
|
|
103
|
+
|
|
104
|
+
If the destination already exists or changed since it was read, stop that write
|
|
105
|
+
and propose a new file or a reviewed merge. Do not claim atomic guarded storage
|
|
106
|
+
or byte-conflict guarantees that the host has not provided.
|
|
107
|
+
|
|
108
|
+
After saving, read the saved bytes through an available tool and check that the
|
|
109
|
+
findings, references, uncertainties, human choices and current recommendations
|
|
110
|
+
survived. Provide the actual path or download and report any readback limitation. Merely printing a filename
|
|
111
|
+
is not a save. Reopening in a fresh chat is a separate continuation check.
|
|
112
|
+
|
|
113
|
+
Installing or removing the skill changes its availability in the host. User notes
|
|
114
|
+
belong to the user and must remain outside the plugin installation/cache folders.
|
|
115
|
+
Never delete research as part of skill removal. Uninstallation does not erase
|
|
116
|
+
instructions or source content already present in an old conversation.
|