@n8r/surface 0.0.0-stage → 0.1.0-experimental.5
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 +207 -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 +412 -0
- package/dist/codec.d.ts +6 -0
- package/dist/codec.js +56 -0
- package/dist/codex.d.ts +72 -0
- package/dist/codex.js +526 -0
- package/dist/contracts.d.ts +235 -0
- package/dist/contracts.js +1 -0
- package/dist/cyclonedx-schemas/bom-1.7.schema.json +6700 -0
- package/dist/cyclonedx-schemas/cryptography-defs.schema.json +576 -0
- package/dist/cyclonedx-schemas/jsf-0.82.schema.json +240 -0
- package/dist/cyclonedx-schemas/spdx.schema.json +786 -0
- package/dist/cyclonedx-validation.d.ts +1 -0
- package/dist/cyclonedx-validation.js +45 -0
- package/dist/html.d.ts +5 -0
- package/dist/html.js +74 -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/recent.d.ts +9 -0
- package/dist/recent.js +71 -0
- package/dist/revisions.d.ts +2 -0
- package/dist/revisions.js +60 -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/skill-artifacts-cli.d.ts +1 -0
- package/dist/skill-artifacts-cli.js +13 -0
- package/dist/skill-artifacts.d.ts +15 -0
- package/dist/skill-artifacts.js +184 -0
- package/dist/skill-cyclonedx.d.ts +26 -0
- package/dist/skill-cyclonedx.js +214 -0
- package/dist/skill-presentation.d.ts +10 -0
- package/dist/skill-presentation.js +108 -0
- package/dist/skill-surface-cli.d.ts +1 -0
- package/dist/skill-surface-cli.js +37 -0
- package/dist/skill-surface-store.d.ts +7 -0
- package/dist/skill-surface-store.js +126 -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-bom.d.ts +73 -0
- package/dist/surface-bom.js +139 -0
- package/dist/surface-draft.d.ts +22 -0
- package/dist/surface-draft.js +112 -0
- package/dist/surface-instructions.d.ts +3 -0
- package/dist/surface-instructions.js +32 -0
- package/dist/surface-overview.d.ts +15 -0
- package/dist/surface-overview.js +86 -0
- package/dist/surface-store.d.ts +34 -0
- package/dist/surface-store.js +213 -0
- package/dist/surface-view.d.ts +3 -0
- package/dist/surface-view.js +50 -0
- package/dist/validate.d.ts +4 -0
- package/dist/validate.js +482 -0
- package/docs/n8r-surface/README.md +133 -0
- package/docs/n8r-surface/cli-bundles.md +72 -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 +711 -0
- package/docs/n8r-surface/contracts.md +220 -0
- package/docs/n8r-surface/critical-path.md +184 -0
- package/docs/n8r-surface/design.md +289 -0
- package/docs/n8r-surface/first-use-access.md +143 -0
- package/docs/n8r-surface/first-use-overview.md +262 -0
- package/docs/n8r-surface/getting-started.md +74 -0
- package/docs/n8r-surface/guided-journey-verification.md +137 -0
- package/docs/n8r-surface/host-contract.md +176 -0
- package/docs/n8r-surface/implementation-decisions.md +96 -0
- package/docs/n8r-surface/instance-first-research.md +209 -0
- package/docs/n8r-surface/npm-distribution.md +107 -0
- package/docs/n8r-surface/npm-release.md +315 -0
- package/docs/n8r-surface/product-direction.md +327 -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 +309 -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/security-assurance-strategy.md +267 -0
- package/docs/n8r-surface/skill-bom-verification.md +142 -0
- package/docs/n8r-surface/skill-cyclonedx-verification.md +144 -0
- package/docs/n8r-surface/skill-cyclonedx.md +85 -0
- package/docs/n8r-surface/skill-manual.md +129 -0
- package/docs/n8r-surface/skill-surface-artifacts.md +234 -0
- package/docs/n8r-surface/skill-usefulness-verification.md +135 -0
- package/docs/n8r-surface/skill-workspace-automation.md +359 -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-description-contract.md +224 -0
- package/docs/n8r-surface/surface-descriptions.md +173 -0
- package/docs/n8r-surface/surface-relationships.md +231 -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/tester-candidate.md +158 -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 +172 -0
- package/docs/n8r-surface/workspace-human-check.md +101 -0
- package/docs/n8r-surface/workspace-installation.md +68 -0
- package/docs/n8r-surface/workspace-verification.md +350 -0
- package/docs/n8r-surface/workspace.md +83 -0
- package/examples/researcher/README.md +100 -0
- package/examples/researcher/composed.surface.json +430 -0
- package/examples/researcher/composed.surface.yaml +283 -0
- package/examples/researcher/cyclonedx/configured/README.md +7 -0
- package/examples/researcher/cyclonedx/configured/manifest.json +10 -0
- package/examples/researcher/cyclonedx/configured/mapping.json +323 -0
- package/examples/researcher/cyclonedx/configured/surface-records.json +1275 -0
- package/examples/researcher/cyclonedx/configured/surface.cdx.json +79 -0
- package/examples/researcher/descriptions/README.md +29 -0
- package/examples/researcher/descriptions/bound-r1.json +141 -0
- package/examples/researcher/descriptions/bound-r2.json +153 -0
- package/examples/researcher/descriptions/capability.json +167 -0
- package/examples/researcher/descriptions/research-r1.json +153 -0
- package/examples/researcher/descriptions/research-r2.json +157 -0
- package/examples/researcher/descriptions/sources.md +24 -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/relationships/README.md +34 -0
- package/examples/researcher/relationships/bound-r1.json +346 -0
- package/examples/researcher/relationships/bound-r2.json +358 -0
- package/examples/researcher/relationships/capability.json +325 -0
- package/examples/researcher/relationships/config/assistant.env.example +4 -0
- package/examples/researcher/relationships/research-r1.json +300 -0
- package/examples/researcher/relationships/research-r2.json +304 -0
- package/examples/researcher/relationships/sources.md +38 -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/examples/researcher/surface-bom/README.md +17 -0
- package/examples/researcher/surface-bom/initial.cdx.json +188 -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 +39 -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 +163 -0
- package/plugins/n8r-surface/skills/research/agents/openai.yaml +4 -0
- package/plugins/n8r-surface/skills/research/references/artifacts.md +152 -0
- package/plugins/n8r-surface/skills/research/references/cyclonedx.md +207 -0
- package/plugins/n8r-surface/skills/research/references/discovery-map.md +178 -0
- package/plugins/n8r-surface/skills/research/references/examples/bound-r1.json +346 -0
- package/plugins/n8r-surface/skills/research/references/examples/capability.json +325 -0
- package/plugins/n8r-surface/skills/research/references/examples/research-r1.json +300 -0
- package/plugins/n8r-surface/skills/research/references/examples/surface.cdx.json +188 -0
- package/plugins/n8r-surface/skills/research/references/first-use-access.md +97 -0
- package/plugins/n8r-surface/skills/research/references/first-use-overview.md +101 -0
- package/plugins/n8r-surface/skills/research/references/instance-first.md +125 -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 +121 -0
- package/plugins/n8r-surface/skills/research/references/workspace.md +89 -0
- package/plugins/n8r-surface/skills/research/scripts/THIRD-PARTY-NOTICES.txt +273 -0
- package/plugins/n8r-surface/skills/research/scripts/artifacts.mjs +8348 -0
- package/plugins/n8r-surface/skills/research/scripts/cyclonedx.mjs +28113 -0
- package/plugins/n8r-surface/skills/research/scripts/surface.mjs +27800 -0
- package/plugins/n8r-surface/skills/research/scripts/workspace.mjs +120 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# From a Surface description to another user's Lab
|
|
2
|
+
|
|
3
|
+
**Status: proposed consumer contract, not an implemented Lab adapter.** A Surface
|
|
4
|
+
can supply a reusable structural description: component roles, connections,
|
|
5
|
+
interfaces, selected configuration, constraints and required bindings. A recipient
|
|
6
|
+
supplies their own resources, accounts and credentials. Successful research or
|
|
7
|
+
import does not establish that the recipient's setup works.
|
|
8
|
+
|
|
9
|
+
There is one AI Surface Model. A **Lab contains Experiments**; an **Experiment
|
|
10
|
+
owns its desired setup** and requests resource configuration directly from its
|
|
11
|
+
Lab. The Lab owns configuration authority and local bindings. See the
|
|
12
|
+
[concepts](../../spec/README.md) and [host contract](host-contract.md).
|
|
13
|
+
|
|
14
|
+
## What travels and what stays local
|
|
15
|
+
|
|
16
|
+
| Material | Portable content | Recipient responsibility |
|
|
17
|
+
| --- | --- | --- |
|
|
18
|
+
| Product guide | Applicable product/fork/revision, capability map, source navigation and gaps. | Check applicability; alternatives are not automatic selections. |
|
|
19
|
+
| Research | Evidence, scoped decisions, contradictions, coverage and lineage, where publication is permitted. | Preserve inherited evidence as inherited; recheck what the new task needs. |
|
|
20
|
+
| Selected definition | Exact revision, stable graph IDs, directed connections, interfaces, constraints and requirements. | Select or explicitly adapt the composition; preserve the original and record changes. |
|
|
21
|
+
| Recreation material | Versioned artifact/recipe references, prerequisites, clean-data initialization and supported checks. | Establish availability and adapter support before applying anything. |
|
|
22
|
+
| Local bindings | Requirement names can travel; secret values, original accounts, deployment addresses and resource identities do not. | Allocate local identities and resolve each requirement under the recipient Lab's authority. |
|
|
23
|
+
| Observations and Runs | Permitted historical evidence can travel with its original attribution. | Produce new effective-setup and Run evidence; source success is not recipient proof. |
|
|
24
|
+
|
|
25
|
+
Do not publish private research merely because a product guide would be useful.
|
|
26
|
+
A reusable guide can be derived from publishable product sources independently.
|
|
27
|
+
An unknown value stays unknown; a withheld value is redacted. Neither means absent.
|
|
28
|
+
|
|
29
|
+
## A concrete partial LibreChat composition
|
|
30
|
+
|
|
31
|
+
This table is a **synthetic planning example**, not a generated validated Surface
|
|
32
|
+
or a claim about a particular deployment. It describes requirements rather than
|
|
33
|
+
copying another user's bindings.
|
|
34
|
+
|
|
35
|
+
| Stable role | Connection or constraint to retain | Recipient input or unresolved decision |
|
|
36
|
+
| --- | --- | --- |
|
|
37
|
+
| Chat application | Identified LibreChat artifact/configuration revision; user request and response path. | Compatible artifact, host resources, private access and local application identity. |
|
|
38
|
+
| Account store | Selected local-account sign-in path and required authorization boundaries. | Fresh accounts and secrets; account policy; evidence of the selected path. |
|
|
39
|
+
| Conversation store | Application persistence through a compatible MongoDB connection. | Recipient database/resource, least required authority, private binding and clean-data policy. |
|
|
40
|
+
| Inference route | Application → any required connector/service → selected model; retain protocol and behavior constraints. | Identify the complete route, compatible service/model, local authorization and adapter. A product/subscription label alone is insufficient. |
|
|
41
|
+
| Optional RAG service | If selected, file-processing connection and required service interface. | Real endpoint, compatible service, authentication, embedding/index/storage choices and caller permissions. An example URL supplies none of these. |
|
|
42
|
+
|
|
43
|
+
The [controlled reconciliation trial](researcher-reconciliation-trial.md) changes
|
|
44
|
+
one RAG endpoint declaration. It cannot fill the rest of this table. Even a
|
|
45
|
+
nonempty URL leaves effective loading, overrides, authorization, reachability and
|
|
46
|
+
successful use unproved. Removing that declaration does not remove RAG from the
|
|
47
|
+
product's supported capabilities.
|
|
48
|
+
|
|
49
|
+
Shared services retain one resource identity with separate dependency edges.
|
|
50
|
+
A dependent Lab must not acquire lifecycle ownership merely by using a service.
|
|
51
|
+
Internal API roles need not become separate deployed processes. New recipient
|
|
52
|
+
instances get local identities linked to the reusable definition's stable roles.
|
|
53
|
+
|
|
54
|
+
## Proposed n8r-labs handoff
|
|
55
|
+
|
|
56
|
+
1. **Intake:** preserve the exact supplied bytes, format/version, revision and
|
|
57
|
+
lineage. Identify whether the input is research, a selected definition or an
|
|
58
|
+
observation. Reject unsupported interpretations; retain opaque material.
|
|
59
|
+
2. **Assess:** map supported meanings to the named consumer version. Report each
|
|
60
|
+
requirement as satisfiable, unresolved, unsupported or deliberately adapted.
|
|
61
|
+
Missing mandatory information blocks applying the affected setup, while the
|
|
62
|
+
partial description remains useful for review.
|
|
63
|
+
3. **Bind:** the recipient chooses their own accounts, credential references,
|
|
64
|
+
resource identities and compatible alternatives. Prepare an inspectable plan
|
|
65
|
+
naming resources to reuse, create or configure and expected effects.
|
|
66
|
+
4. **Prepare:** the Experiment requests its exact saved setup revision from its
|
|
67
|
+
Lab. The controller checks ownership, resource authority, concurrent work and
|
|
68
|
+
revision freshness, then dispatches only supported adapter operations.
|
|
69
|
+
5. **Verify:** independently read back effective nonsecret configuration and
|
|
70
|
+
attribute actual interactions to recipient resources and definition revision.
|
|
71
|
+
Record failures and gaps without silently replacing the intended composition.
|
|
72
|
+
|
|
73
|
+
This is a requirements sequence, not a list of implemented commands. The
|
|
74
|
+
Researcher remains an investigator; imported prose and recipes do not grant
|
|
75
|
+
operational authority. No new runner, provisioning engine or credential-copying
|
|
76
|
+
mechanism is introduced here.
|
|
77
|
+
|
|
78
|
+
## Format and adapter decisions still needed
|
|
79
|
+
|
|
80
|
+
The current skill emits Markdown research. The separate experimental
|
|
81
|
+
[`n8r.surface/0.1` contract](contracts.md#selected-surface-definition) can express
|
|
82
|
+
selected graph nodes, declared relationships and secret/resource/configuration
|
|
83
|
+
requirements. Its validators check bounded structure and references, not source
|
|
84
|
+
truth or a consumer's understanding. Deployment bindings and Run formats are
|
|
85
|
+
outside that profile.
|
|
86
|
+
|
|
87
|
+
Before claiming n8r-labs support, identify the consumer revision and implement a
|
|
88
|
+
versioned mapping for the chosen vocabulary. Preserve unsupported nodes, edges,
|
|
89
|
+
attributes, requirements and evidence or report explicit losses. A consumer that
|
|
90
|
+
can retain JSON bytes or understand a narrow endpoint/model setting has not thereby
|
|
91
|
+
understood the full graph. Do not silently relabel one format as another.
|
|
92
|
+
|
|
93
|
+
Still required: shared vocabulary/profile selection; supported artifact and recipe
|
|
94
|
+
references; recipient binding and authority rules; configuration precedence;
|
|
95
|
+
missing-resource behavior; clean-data initialization; effective-setup readback;
|
|
96
|
+
and clear handling of substitutions. Existing helpers can satisfy individual
|
|
97
|
+
steps only after their actual scope is checked.
|
|
98
|
+
|
|
99
|
+
## Smallest meaningful consumer proof
|
|
100
|
+
|
|
101
|
+
For a named consumer build, begin with a permitted saved definition, an identified
|
|
102
|
+
recipient Lab/Experiment, suitable resources and the recipient's own authorization.
|
|
103
|
+
Record the exact user interaction and setup revision. Import/inspect must leave
|
|
104
|
+
resources unchanged, expose unsupported meanings and retain the source bytes.
|
|
105
|
+
|
|
106
|
+
Then resolve bindings and run the proposed preparation through the Lab. For the
|
|
107
|
+
selected chat path, obtain an actual response through the recipient application,
|
|
108
|
+
read back the saved conversation where persistence is required, and retain the
|
|
109
|
+
route, effective setup and result evidence. If RAG is selected, exercise a bounded
|
|
110
|
+
synthetic file-processing/retrieval case separately. Confirm the original setup
|
|
111
|
+
and evidence remain intact; clean up only trial-owned resources.
|
|
112
|
+
|
|
113
|
+
Wording, generated IDs and response text may vary. Wrong target attribution,
|
|
114
|
+
missing mandatory bindings, silent graph losses, copied source credentials or
|
|
115
|
+
claims based solely on successful parsing fail the proof. If prerequisites or
|
|
116
|
+
adapters are unavailable, record the exact blocked step. No such consumer trial
|
|
117
|
+
is claimed by this documentation increment.
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# Researching an AI Surface graph
|
|
2
|
+
|
|
3
|
+
The graph is the primary result: AI-relevant components, connections, evidence
|
|
4
|
+
and gaps. Inspect configuration to establish or explain those connections,
|
|
5
|
+
not to inventory every setting in an application. The shared
|
|
6
|
+
[skill discovery guide](../../plugins/n8r-surface/skills/research/references/discovery-map.md)
|
|
7
|
+
contains the navigation rules and product-knowledge approach.
|
|
8
|
+
|
|
9
|
+
Use the [short installation and first-trial route](researcher-skill.md#research-01-investigate-and-continue).
|
|
10
|
+
These instructions describe candidate 0.1.8; see the
|
|
11
|
+
[verification record](researcher-skill-verification.md) for exercised paths and
|
|
12
|
+
unverified live inspection. No Lab or new runner is required.
|
|
13
|
+
|
|
14
|
+
The [controlled LibreChat trial](researcher-reconciliation-trial.md) supplies a
|
|
15
|
+
repeatable baseline/change/readback check. The [recreation handoff](recreation-handoff.md)
|
|
16
|
+
explains how a selected description can guide recipient-owned Lab setup and what
|
|
17
|
+
still needs consumer verification.
|
|
18
|
+
|
|
19
|
+
## Three related views
|
|
20
|
+
|
|
21
|
+
There is one AI Surface Model. The Researcher distinguishes three useful views
|
|
22
|
+
of a system rather than treating every discovered possibility as a running edge:
|
|
23
|
+
|
|
24
|
+
| View | Question | Typical evidence |
|
|
25
|
+
| --- | --- | --- |
|
|
26
|
+
| Possible connections | What can this product/version support, and where should we look? | Product guide, applicable docs and implementation evidence; alternatives remain alternatives. |
|
|
27
|
+
| Declared setup | Which components/connections does this particular composition select? | Identified repository/build/configuration, intended choices and a selected Surface definition. |
|
|
28
|
+
| Observed running graph | Which instances and connections are actually configured/enabled here? | Dated deployment binding and applicable effective settings/observations; stored settings alone have a narrower meaning. |
|
|
29
|
+
|
|
30
|
+
For a synthetic example, a product supports 50 possibilities, a setup selects 25,
|
|
31
|
+
and a running deployment enables 10. The repository may still contain the code for
|
|
32
|
+
all 50; configuration selection is distinct from implementation support. Which
|
|
33
|
+
of the enabled connections were actually exercised needs its own evidence.
|
|
34
|
+
Do not turn an enablement read into a successful connection or usage claim.
|
|
35
|
+
|
|
36
|
+
The generic discovery guide is broader than any product: it supplies questions
|
|
37
|
+
and navigation, not a giant selected Surface containing every possible edge.
|
|
38
|
+
Reusable product knowledge narrows it to applicable capabilities. A selected
|
|
39
|
+
definition describes a composition; deployment observations remain linked,
|
|
40
|
+
dated evidence and do not rewrite that definition. These views often narrow the
|
|
41
|
+
possibilities, but plugins, external configuration or services may also introduce
|
|
42
|
+
connections outside the supplied checkout. This is not guaranteed set inheritance.
|
|
43
|
+
|
|
44
|
+
Component identity and evidence connect the views. The model's existing
|
|
45
|
+
[definition/observation distinction](../../spec/README.md#configuration-and-evidence)
|
|
46
|
+
continues to apply; no new schema or hierarchy is introduced here.
|
|
47
|
+
|
|
48
|
+
## Skeleton brief and linked evidence
|
|
49
|
+
|
|
50
|
+
Ask for **Skeleton Surface v0.1** when the useful result is a brief of key nodes
|
|
51
|
+
and relationships. Its security focus is where an integration could intercept
|
|
52
|
+
LLM and actual tool calls, with what powers and gaps. The
|
|
53
|
+
[bundled procedure](../../plugins/n8r-surface/skills/research/references/skeleton-surface.md)
|
|
54
|
+
defines what stays in the brief and what belongs in linked evidence. It works
|
|
55
|
+
from source-only capabilities or supplied setup evidence; bindings are not a
|
|
56
|
+
prerequisite. The larger research descriptions are not minimum-size templates.
|
|
57
|
+
|
|
58
|
+
This is a named Markdown working profile, not a universal schema or a new CLI
|
|
59
|
+
command. Detailed and recreation profiles remain future work. Follow
|
|
60
|
+
[SKELETON-01 and SKELETON-02](researcher-skeleton-check.md) to exercise the brief
|
|
61
|
+
and a successor after a declaration change through the installed skill.
|
|
62
|
+
|
|
63
|
+
## Revision lifecycle
|
|
64
|
+
|
|
65
|
+
1. **Research the available sources.** Save a scoped description of capabilities,
|
|
66
|
+
roles and relationships, with evidence and gaps. A required database role or
|
|
67
|
+
supported MCP/vector-store connection need not have a selected instance.
|
|
68
|
+
2. **Configure through a Lab in a later task.** An Experiment selects its desired
|
|
69
|
+
setup and asks the Lab to configure resources. The intended consumer behavior
|
|
70
|
+
is to record successor setup/binding revisions as changes happen, with the
|
|
71
|
+
request, result and effective-state evidence distinguished. Failed or partial
|
|
72
|
+
configuration must not be recorded as successful. Automatic recording belongs
|
|
73
|
+
to future Lab integration, not this skill or an implemented API in this repo.
|
|
74
|
+
3. **Reconcile changes made outside the Lab explicitly.** Saved descriptions do
|
|
75
|
+
not watch external changes. Run the Researcher against current identified
|
|
76
|
+
sources/settings and the prior description; save an authorized successor with
|
|
77
|
+
the differences and their evidence. A changed settings file establishes a
|
|
78
|
+
declaration, not that a running process loaded it or a connection succeeded.
|
|
79
|
+
|
|
80
|
+
For example, a later setup may bind a required database role and route inference
|
|
81
|
+
through a selected proxy. Retain the role IDs and record resource mappings in
|
|
82
|
+
linked binding records, keeping secrets outside research. A successor can refer
|
|
83
|
+
to the same definition with new bindings; changes to composition or intended
|
|
84
|
+
settings require a successor definition. A newly described proxy may itself need
|
|
85
|
+
an identity and relationships. Do not disguise a topology change as just an address.
|
|
86
|
+
|
|
87
|
+
Profile version changes when output rules change. Surface/setup revisions change
|
|
88
|
+
when the described composition, knowledge or bindings change. Preserve predecessors
|
|
89
|
+
and the exact definition/effective setup used by earlier Runs. Discovery time does
|
|
90
|
+
not prove when an external change took effect. The Researcher describes and
|
|
91
|
+
reconciles; it does not install or reconfigure the target.
|
|
92
|
+
|
|
93
|
+
## Graph discovery, reconciliation and live evidence
|
|
94
|
+
|
|
95
|
+
Use the same installation and notes convention. These are conversational intents,
|
|
96
|
+
not new CLI commands. The skill supplies instructions; each host supplies actual
|
|
97
|
+
file, web, API and computer access. A missing capability remains a visible gap.
|
|
98
|
+
|
|
99
|
+
**DISCOVER-01: start with the available material.** In a local chat with a selected
|
|
100
|
+
source folder (or supplied docs), select the skill and ask:
|
|
101
|
+
|
|
102
|
+
> Map the AI-relevant components and connections in these sources. Reuse any
|
|
103
|
+
> applicable guides, research or Surface definitions I supplied. Start with a
|
|
104
|
+
> shallow graph and follow its useful gaps. Include configuration only when it
|
|
105
|
+
> explains the graph. Save working notes and show me the result.
|
|
106
|
+
|
|
107
|
+
Expect a graph or edge table, scope/revision, source references, separate supported
|
|
108
|
+
alternatives and selected connections, and missing evidence. Code-only, docs-only,
|
|
109
|
+
prior-model-only and mixed inputs are valid starts. A bounded finding of no AI
|
|
110
|
+
relevance is valid; inventing an AI node or treating a package list as the Surface
|
|
111
|
+
is a failure. Open the note and follow a representative edge's source reference.
|
|
112
|
+
|
|
113
|
+
**RECONCILE-01: compare a supplied Surface.** Provide the prior JSON/notes and the
|
|
114
|
+
current identified sources, then ask:
|
|
115
|
+
|
|
116
|
+
> Compare this Surface with the current sources. Preserve the original. For its
|
|
117
|
+
> AI-relevant nodes and connections, show supported agreements, differences,
|
|
118
|
+
> additional discoveries and unknowns with evidence. Separate capabilities,
|
|
119
|
+
> intended setup, declared settings and runtime observations. Save the comparison.
|
|
120
|
+
|
|
121
|
+
Expect claim-by-claim research, including unsupported format/vocabulary meanings,
|
|
122
|
+
without a silent rewrite or universal validation claim. For example, code that
|
|
123
|
+
supports OIDC does not prove it is enabled; a current staging file declaring it
|
|
124
|
+
disabled is not evidence that a live process loaded it. Missing model fields do
|
|
125
|
+
not mean absent capabilities. Open the comparison and confirm the original bytes
|
|
126
|
+
are unchanged. Validated generated Surface JSON remains outside this increment.
|
|
127
|
+
|
|
128
|
+
**LIVE-01: inspect an available admin page/API.** Prerequisites: a user-selected
|
|
129
|
+
test environment and admin location, an appropriate account, supported host tools
|
|
130
|
+
and permitted read access. Use the host's supported sign-in handoff if required;
|
|
131
|
+
enter credentials directly there, not in chat. Then ask:
|
|
132
|
+
|
|
133
|
+
> Inspect the selected environment's identity settings read-only. Establish
|
|
134
|
+
> whether OIDC is enabled and which identity service it connects to. Record
|
|
135
|
+
> nonsecret evidence for that graph edge; do not reveal credentials, change
|
|
136
|
+
> settings or test the connection. Save a dated observation in my working notes.
|
|
137
|
+
|
|
138
|
+
Expect the actual environment, time, page/section or API operation, nonsecret
|
|
139
|
+
enablement and target where visible, and explicit unknowns elsewhere. Read the
|
|
140
|
+
relevant view/fields again to verify the observation and open the saved note.
|
|
141
|
+
Distinguish stored settings from runtime-effective settings. Do not treat masked
|
|
142
|
+
credentials as valid credentials or a settings read as successful OIDC login.
|
|
143
|
+
No product is assumed to expose all settings in an admin UI. A missing tool,
|
|
144
|
+
blocked route or unavailable field is a blocker/limit, not permission to bypass
|
|
145
|
+
access or an assertion that the connection is disabled.
|
|
146
|
+
|
|
147
|
+
For these chat interactions there is no process exit code. Success is the
|
|
148
|
+
specified visible result plus saved-byte readback; wording and identities vary.
|
|
149
|
+
No target settings should change. Keep notes; no target cleanup is expected.
|
|
150
|
+
Inspect only graph-relevant fields, avoiding secret reveals, raw config exports
|
|
151
|
+
and screenshots containing credentials. Real admin UI/API acceptance must be
|
|
152
|
+
recorded separately from synthetic cases or source-only trials.
|
|
153
|
+
|
|
154
|
+
ChatGPT Work access depends on the actual browser/session and account permissions;
|
|
155
|
+
it does not inherit all sign-ins automatically. See the official
|
|
156
|
+
[Work browser/session boundaries](https://learn.chatgpt.com/docs/enterprise/chatgpt-work-local-security#browser-sessions-and-existing-sign-ins),
|
|
157
|
+
reviewed 4 November 2026. The skill cannot grant or broaden host access.
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Try the prepared example
|
|
2
|
+
|
|
3
|
+
Test whether Researcher can describe an AI system, save its findings and notice a
|
|
4
|
+
small change while preserving earlier work. This uses fictional documents and a
|
|
5
|
+
pretend configuration; no application needs to be installed or started.
|
|
6
|
+
|
|
7
|
+
## Before you start
|
|
8
|
+
|
|
9
|
+
Open your local vault in your file browser. You need a local chat app
|
|
10
|
+
with **n8r-surface Researcher 0.1.7 already installed**, access to the prepared example in this repository,
|
|
11
|
+
and permission to save files in your vault. If access or the skill is missing, record
|
|
12
|
+
**Blocked** and what is missing. You do not need to diagnose the installation.
|
|
13
|
+
Follow the [fresh-context guidance](researcher-vault.md#start-with-fresh-context) before
|
|
14
|
+
the first prompt in each test chat.
|
|
15
|
+
|
|
16
|
+
## Tasks
|
|
17
|
+
|
|
18
|
+
- [ ] **1. Make your working copy.** In the `n8r-surface` repository, open
|
|
19
|
+
`examples/researcher-vault/`. Copy the whole `chat-service` folder into `runs/`
|
|
20
|
+
in your local vault (create `runs/` if needed) and rename the copy `check-001`. If that
|
|
21
|
+
name already exists, choose the next unused number and use it throughout these
|
|
22
|
+
steps. Open the copy: it should contain `scope.md`, `system.md` and `current.env`.
|
|
23
|
+
|
|
24
|
+
**Look for:** `DOCUMENT_SEARCH_URL=` in your copy of `current.env`, with nothing
|
|
25
|
+
after the equals sign. Leave the shared files in `examples/researcher-vault/` unchanged.
|
|
26
|
+
|
|
27
|
+
- [ ] **2. Start the investigation.** Open a fresh local chat in your
|
|
28
|
+
vault folder and select **n8r-surface Researcher**
|
|
29
|
+
(`n8r-surface:research`). Paste this, adjusting `check-001` if needed:
|
|
30
|
+
|
|
31
|
+
> Use only scope.md, system.md and current.env in runs/check-001 as source
|
|
32
|
+
> material. Describe the main AI-related components and connections. Explain
|
|
33
|
+
> what the product supports, what the supplied settings say, and what is still
|
|
34
|
+
> unknown about a running system. Cite the files you used. Save your findings
|
|
35
|
+
> as a new numbered note under runs/check-001/notes and give me a link to
|
|
36
|
+
> open it. Create the notes folder if needed.
|
|
37
|
+
> Use the installed skill; do not consult other chats, memories, projects,
|
|
38
|
+
> the web or the test walkthroughs.
|
|
39
|
+
|
|
40
|
+
**Look for:** a readable map or connection table, source references, unknowns
|
|
41
|
+
and an openable saved note. Open the note and confirm it matches the chat. It
|
|
42
|
+
should connect the browser, chat application, model gateway and conversation
|
|
43
|
+
store, and describe optional document search. The supplied settings give no
|
|
44
|
+
document-search address; they do give a model-gateway address. Running services,
|
|
45
|
+
the language model and authentication details remain unverified or unknown.
|
|
46
|
+
|
|
47
|
+
Check **Recommended next steps**: each item names the next investigation, why
|
|
48
|
+
it matters and a source location or missing evidence from which to resume.
|
|
49
|
+
|
|
50
|
+
Make a copy of this first note named `first-note-backup.md` directly in your
|
|
51
|
+
`check-001` folder. Keep the original in `notes/` for the next chat.
|
|
52
|
+
|
|
53
|
+
- [ ] **3. Change one setting.** Open your working copy of `current.env` in a text
|
|
54
|
+
editor. Change `DOCUMENT_SEARCH_URL=` to
|
|
55
|
+
`DOCUMENT_SEARCH_URL=https://search.example.test`. Save and reopen the file.
|
|
56
|
+
Leave every other line and file unchanged. This is a placeholder address;
|
|
57
|
+
do not visit it or run the settings file.
|
|
58
|
+
|
|
59
|
+
**Look for:** the new address in your working copy. The shared example should
|
|
60
|
+
still have the empty value.
|
|
61
|
+
|
|
62
|
+
- [ ] **4. Ask Researcher to compare.** Start another fresh local chat in your
|
|
63
|
+
vault folder and select Researcher again. Give it the original saved note from
|
|
64
|
+
`notes/` by attaching the file or pasting its path, then paste:
|
|
65
|
+
|
|
66
|
+
> Read the saved recommendations and continue within these supplied sources.
|
|
67
|
+
> Compare my saved findings with scope.md, system.md and current.env in
|
|
68
|
+
> runs/check-001. Tell me what changed, what stayed the same and what is
|
|
69
|
+
> still unknown, with references to the evidence. Save the comparison as a new
|
|
70
|
+
> numbered note under runs/check-001/notes and give me a link. Keep the
|
|
71
|
+
> original note unchanged.
|
|
72
|
+
> Use the installed skill and these supplied sources only; do not consult
|
|
73
|
+
> other chats, memories, projects, the web or the test walkthroughs.
|
|
74
|
+
|
|
75
|
+
**Look for:** a second file with a different name. Open it: document search
|
|
76
|
+
should now have a declared target of `https://search.example.test`. The model
|
|
77
|
+
gateway address, other components and unresolved questions should carry forward.
|
|
78
|
+
Whether any service is running or working remains unknown. A claim such as
|
|
79
|
+
“document search now works” fails this check. Reopen the first note and compare
|
|
80
|
+
it with `first-note-backup.md`; its contents should be unchanged. The successor
|
|
81
|
+
should update **Recommended next steps**, explaining resolved items or blockers
|
|
82
|
+
and where to resume. It must not silently copy recommendations made obsolete by
|
|
83
|
+
the changed settings.
|
|
84
|
+
|
|
85
|
+
- [ ] **5. Check the setup explanation.** In the chat, ask:
|
|
86
|
+
|
|
87
|
+
> In the current AI Surface Model, who owns an Experiment's desired setup,
|
|
88
|
+
> and who prepares the resources it needs?
|
|
89
|
+
|
|
90
|
+
**Look for:** the Experiment owns its desired setup and asks its Lab directly;
|
|
91
|
+
the Lab configures resources and supplies local bindings. The current chain is
|
|
92
|
+
**Lab → Experiment → Setup**.
|
|
93
|
+
|
|
94
|
+
## Report the result
|
|
95
|
+
|
|
96
|
+
Keep the run folder for review. Record this for yourself, or send it to the person
|
|
97
|
+
who assigned the test:
|
|
98
|
+
|
|
99
|
+
> Result: Pass / Fail / Blocked
|
|
100
|
+
>
|
|
101
|
+
> App used and Researcher version shown in the chat:
|
|
102
|
+
>
|
|
103
|
+
> Run folder, first note and comparison note:
|
|
104
|
+
>
|
|
105
|
+
> Task number and what happened, if anything differed:
|
|
106
|
+
|
|
107
|
+
**Pass:** every task produced the expected result. **Fail:** a task ran but gave a
|
|
108
|
+
wrong result, lost earlier work or failed to save a file. **Blocked:** missing
|
|
109
|
+
access or setup prevented a task. Different wording, supported extra findings
|
|
110
|
+
and different note numbers are fine. Copy the relevant response or error; you
|
|
111
|
+
need not diagnose it. These are chat interactions, so there are no command exit
|
|
112
|
+
codes to check.
|
|
113
|
+
|
|
114
|
+
This is a document-based rehearsal of the workflow. It does not establish code
|
|
115
|
+
discovery, a working service or Lab recreation. For real source exploration,
|
|
116
|
+
[try another repository](researcher-repository-check.md), or use the deeper
|
|
117
|
+
[LibreChat declaration trial](researcher-reconciliation-trial.md).
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Controlled LibreChat declaration reconciliation
|
|
2
|
+
|
|
3
|
+
This procedure tests whether the installed Researcher can find a graph-relevant
|
|
4
|
+
configuration difference, preserve prior research and distinguish declarations
|
|
5
|
+
from runtime evidence. It uses **Markdown research**, not validated Surface JSON.
|
|
6
|
+
The configuration fixture is synthetic; the inspected implementation is actual
|
|
7
|
+
LibreChat source. No target application or service is changed or started.
|
|
8
|
+
|
|
9
|
+
## Teammate checklist
|
|
10
|
+
|
|
11
|
+
For a first check with the skill already installed, start in the
|
|
12
|
+
[local vault guide](researcher-vault.md). It contains a prepared fictional
|
|
13
|
+
example and a walkthrough for investigating another chat-system repository.
|
|
14
|
+
Each run keeps its working files and saved notes under `runs/` in the selected vault.
|
|
15
|
+
|
|
16
|
+
This page retains the deeper **LibreChat source** trial. Its recorded evidence
|
|
17
|
+
applies to the source revision below, not to the vault's fictional example.
|
|
18
|
+
|
|
19
|
+
## Preparation for the LibreChat trial
|
|
20
|
+
|
|
21
|
+
Use an installed skill, a permitted LibreChat checkout and a fresh test folder.
|
|
22
|
+
The first shell block below creates the three configuration input files. Keep
|
|
23
|
+
expected results outside Researcher's source folder, and record versions and
|
|
24
|
+
file-preservation checks alongside the saved outputs. The earlier agent rehearsal
|
|
25
|
+
and hashes are in the [verification record](researcher-skill-verification.md#controlled-declaration-trial-014).
|
|
26
|
+
Human acceptance remains separate from that rehearsal.
|
|
27
|
+
|
|
28
|
+
## State X and expected outcome
|
|
29
|
+
|
|
30
|
+
Prerequisites: the [installed skill](researcher-skill.md), persistent local files,
|
|
31
|
+
Python 3, and a permitted LibreChat checkout. The exercised source revision was
|
|
32
|
+
`e1dfc10449ff713faffacd60273fddcfe2c0a698`. Identify any other revision and recheck
|
|
33
|
+
its semantics before using the same expectation. Existing private/dirty files
|
|
34
|
+
remain excluded. Prior graph research may be supplied, with its scope preserved.
|
|
35
|
+
|
|
36
|
+
The selected trial composition is `trial:librechat-rag-declaration`. Its initial
|
|
37
|
+
partial file explicitly sets `RAG_API_URL=`. The sole changed value becomes
|
|
38
|
+
`https://rag.example.test`. Both are declarations that are never loaded into a
|
|
39
|
+
process. Other settings and deployment overrides remain unknown.
|
|
40
|
+
|
|
41
|
+
The expected graph difference is a declared target for the existing RAG role.
|
|
42
|
+
Product support stays unchanged. Neither the empty value nor the example URL
|
|
43
|
+
establishes deployed enablement, reachability, embedding or successful retrieval.
|
|
44
|
+
Keep this expectation separate from the Researcher's task input.
|
|
45
|
+
|
|
46
|
+
The source documents the key in
|
|
47
|
+
[`.env.example`](https://github.com/LibreChat-AI/LibreChat/blob/e1dfc10449ff713faffacd60273fddcfe2c0a698/.env.example#L802-L814).
|
|
48
|
+
The [file-processing implementation](https://github.com/LibreChat-AI/LibreChat/blob/e1dfc10449ff713faffacd60273fddcfe2c0a698/api/server/services/Files/VectorDB/crud.js#L20-L95)
|
|
49
|
+
checks the URL before requests and uses it for `/embed` and `/documents` operations.
|
|
50
|
+
These are source claims at that revision, not observed application calls.
|
|
51
|
+
|
|
52
|
+
## Baseline, change and readback
|
|
53
|
+
|
|
54
|
+
From the **LibreChat checkout root**, record identity and prepare a disposable
|
|
55
|
+
input folder. Commands below do not load the environment files or contact a URL.
|
|
56
|
+
|
|
57
|
+
```sh
|
|
58
|
+
git rev-parse HEAD
|
|
59
|
+
git status --short
|
|
60
|
+
codex --version
|
|
61
|
+
codex plugin list --marketplace n8r-surface --json
|
|
62
|
+
trial_dir=$(mktemp -d "${TMPDIR:-/tmp}/n8r-rag-trial.XXXXXX")
|
|
63
|
+
python3 - "$trial_dir" <<'PY'
|
|
64
|
+
from pathlib import Path
|
|
65
|
+
import sys
|
|
66
|
+
root = Path(sys.argv[1])
|
|
67
|
+
text = '# Task-owned partial LibreChat declaration; never loaded into a process.\nRAG_API_URL=\n'
|
|
68
|
+
(root / 'baseline.env').write_text(text)
|
|
69
|
+
(root / 'current.env').write_text(text)
|
|
70
|
+
(root / 'scope.md').write_text(
|
|
71
|
+
'Composition: trial:librechat-rag-declaration. current.env is its selected '
|
|
72
|
+
'partial declaration; baseline.env retains initial bytes. Neither is loaded. '
|
|
73
|
+
'Other settings, overrides and runtime state are unknown. Do not source '
|
|
74
|
+
'these files or contact their targets. Prior research is separately scoped.\n'
|
|
75
|
+
)
|
|
76
|
+
print(root)
|
|
77
|
+
PY
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Expected: exit 0 for each command, one enabled candidate and the printed trial
|
|
81
|
+
folder. Version 0.1.4 was used for both recorded passes; current 0.1.5 corrects the
|
|
82
|
+
model's ownership reference without changing this reconciliation method.
|
|
83
|
+
|
|
84
|
+
In a fresh local chat, select `n8r-surface:research`, supply the checkout, printed
|
|
85
|
+
trial folder and any applicable prior notes, then ask:
|
|
86
|
+
|
|
87
|
+
> Establish an AI Surface graph baseline for the composition in scope.md using
|
|
88
|
+
> current.env and this LibreChat checkout. Reuse the supplied research after
|
|
89
|
+
> checking applicability. Separate product possibilities, the declared trial
|
|
90
|
+
> setup and observed deployment. Retain identities, human choices and unknowns.
|
|
91
|
+
> Save the next numbered graph-reconciliation note and read back its bytes.
|
|
92
|
+
|
|
93
|
+
Open the saved note and follow its claim-bearing source references. Record its
|
|
94
|
+
exact filename and SHA-256. The baseline must exist **before** changing the file.
|
|
95
|
+
The host must show its resolved absolute save destination; do not accept a claimed
|
|
96
|
+
save without a readable file.
|
|
97
|
+
|
|
98
|
+
In the same terminal, change the one value and inspect the actual bytes:
|
|
99
|
+
|
|
100
|
+
```sh
|
|
101
|
+
python3 - "$trial_dir" <<'PY'
|
|
102
|
+
from pathlib import Path
|
|
103
|
+
import hashlib, sys
|
|
104
|
+
root = Path(sys.argv[1])
|
|
105
|
+
old = (root / 'baseline.env').read_bytes()
|
|
106
|
+
assert (root / 'current.env').read_bytes() == old
|
|
107
|
+
new = old.replace(b'RAG_API_URL=\n', b'RAG_API_URL=https://rag.example.test\n')
|
|
108
|
+
assert new != old
|
|
109
|
+
(root / 'current.env').write_bytes(new)
|
|
110
|
+
for name in ('baseline.env', 'current.env'):
|
|
111
|
+
data = (root / name).read_bytes()
|
|
112
|
+
print(name, hashlib.sha256(data).hexdigest())
|
|
113
|
+
print(data.decode(), end='')
|
|
114
|
+
PY
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Expected exit 0 and only that value changed. Baseline digest is
|
|
118
|
+
`5e060fa66a8c986f418149ff5c8aceba7f4e3b4b090456bb1a1e4bf0299c3161`;
|
|
119
|
+
changed digest is `facfff7d29f57690ba6bb2dc5127a2a249e581bf27f0e3bb9106f4761ab3b638`.
|
|
120
|
+
|
|
121
|
+
In another fresh local chat with the same installed skill and source access,
|
|
122
|
+
supply the baseline note and trial folder, then ask:
|
|
123
|
+
|
|
124
|
+
> Compare this saved graph with the current sources and supplied declaration.
|
|
125
|
+
> Show evidenced agreements, differences, additional discoveries, conflicts and
|
|
126
|
+
> unknowns for relevant nodes and connections. Preserve the original, identities,
|
|
127
|
+
> scoped decisions and unresolved claims. Separate capabilities, declarations
|
|
128
|
+
> and observations. Save a numbered successor and read back its bytes.
|
|
129
|
+
|
|
130
|
+
Independently open the successor and verify the one declared target change,
|
|
131
|
+
unchanged capability/identities and retained unknowns. Rehash the baseline note
|
|
132
|
+
and earlier notes to confirm preservation. Inspect the cited source lines and
|
|
133
|
+
file hashes. Check `git status --short` again; research must not change the source
|
|
134
|
+
checkout. Chat interactions have no process exit code.
|
|
135
|
+
|
|
136
|
+
Graph wording, next note number and additional scoped source findings may vary.
|
|
137
|
+
An unsupported runtime claim, lost predecessor, unrelated selection change,
|
|
138
|
+
unexplained identity replacement or missing saved file fails the check. Source
|
|
139
|
+
reading cannot demonstrate whether a process loaded this declaration; a later
|
|
140
|
+
live trial needs separate effective-configuration and interaction evidence.
|
|
141
|
+
|
|
142
|
+
Retain the notes and input snapshots together when preserving evidence. Otherwise
|
|
143
|
+
remove only the disposable trial folder after review; no application cleanup or
|
|
144
|
+
setting restoration is needed. Do not remove earlier research.
|
|
145
|
+
|
|
146
|
+
See [recorded evidence](researcher-skill-verification.md#controlled-declaration-trial-014)
|
|
147
|
+
and the proposed [Lab recreation handoff](recreation-handoff.md). An agent
|
|
148
|
+
rehearsal establishes the bounded recorded outcome, not human acceptance or
|
|
149
|
+
implemented Lab recreation.
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Try another chat-system repository
|
|
2
|
+
|
|
3
|
+
Choose a different chat-system project and see whether Researcher can build a
|
|
4
|
+
useful description from its actual sources. This is an exploratory test: the
|
|
5
|
+
answers depend on the project you choose, so inspect the evidence it cites.
|
|
6
|
+
|
|
7
|
+
## Before you start
|
|
8
|
+
|
|
9
|
+
Download or clone a repository you are permitted to investigate into your usual
|
|
10
|
+
projects folder. Keep it separate from this vault. Use a local chat app with
|
|
11
|
+
**n8r-surface Researcher 0.1.5 already installed** and access to both that source
|
|
12
|
+
folder and your local vault. You do not need to install or run the
|
|
13
|
+
chosen application. Use public source files without credentials or private data.
|
|
14
|
+
|
|
15
|
+
Pick a short run name, such as `another-chat-001`. Choose an unused name for each
|
|
16
|
+
new investigation; existing runs stay available for comparison.
|
|
17
|
+
Follow the [fresh-context guidance](researcher-vault.md#start-with-fresh-context) before
|
|
18
|
+
the first prompt in each test chat.
|
|
19
|
+
|
|
20
|
+
## Tasks
|
|
21
|
+
|
|
22
|
+
- [ ] **1. Introduce the project.** Start a fresh local chat in your local vault
|
|
23
|
+
folder and select **n8r-surface Researcher** (`n8r-surface:research`). Give
|
|
24
|
+
it the location of the other repository by adding that folder to the chat's
|
|
25
|
+
accessible sources or pasting its full path. Name it as the source. In the prompt
|
|
26
|
+
below, replace `another-chat-001` with your chosen run name, then paste:
|
|
27
|
+
|
|
28
|
+
> Investigate the other chat-system repository I supplied. Start by confirming
|
|
29
|
+
> which project and source revision you can actually read. Describe how user
|
|
30
|
+
> input reaches AI processing, which model or inference services are supported,
|
|
31
|
+
> and how tools, stored data and authentication connect where the evidence
|
|
32
|
+
> supports them. Cite the source files behind the connections and identify
|
|
33
|
+
> important unknowns. Keep supported options distinct from a selected or running
|
|
34
|
+
> setup. Read source files only; do not install dependencies, start services or
|
|
35
|
+
> read credentials. Save a new numbered note under
|
|
36
|
+
> runs/another-chat-001/notes in this vault, creating the
|
|
37
|
+
> folder if needed, and give me a link to open it.
|
|
38
|
+
> Use the installed skill and the supplied sources only. Do not consult other
|
|
39
|
+
> chats, memories, projects, the web or the test walkthroughs.
|
|
40
|
+
|
|
41
|
+
**Look for:** the correct project, a readable connection map and actual source
|
|
42
|
+
references. If the chat cannot read the other folder, record **Blocked** rather
|
|
43
|
+
than accepting a description based only on the project's name. A downloaded
|
|
44
|
+
archive may lack a Git revision; that limitation should be stated, with the
|
|
45
|
+
inspected files identified instead.
|
|
46
|
+
|
|
47
|
+
- [ ] **2. Inspect the saved findings.** Open the note from its link. Pick two or
|
|
48
|
+
three connections you care about and open the files it cites. Read the cited
|
|
49
|
+
sections to see whether they support the description. A Mermaid diagram may
|
|
50
|
+
appear as text in some editors; its relationships should still be readable.
|
|
51
|
+
|
|
52
|
+
**Look for:** findings about this project, not a generic chat architecture.
|
|
53
|
+
Optional integrations should stay optional unless configuration selects them.
|
|
54
|
+
Missing information should remain unknown. Source code alone should not become
|
|
55
|
+
a claim that an endpoint is reachable or a service works. Record any claim you
|
|
56
|
+
cannot verify as **Needs review**, with the claim and its cited file.
|
|
57
|
+
|
|
58
|
+
- [ ] **3. Continue in a fresh chat.** Start a new local chat in your vault,
|
|
59
|
+
select Researcher, and supply the same source folder and saved note. Paste:
|
|
60
|
+
|
|
61
|
+
> Continue from this saved note. Trace one supported conversation path from
|
|
62
|
+
> incoming user text to the model request and back to the response. Identify
|
|
63
|
+
> which files support each part and where the evidence runs out. Retain the
|
|
64
|
+
> earlier component identities and open questions. Save a new numbered note
|
|
65
|
+
> alongside the first and leave the first unchanged.
|
|
66
|
+
> Use the installed skill, this note and the supplied repository only. Do not
|
|
67
|
+
> consult other chats, memories, projects, the web or the test walkthroughs.
|
|
68
|
+
|
|
69
|
+
**Look for:** a deeper explanation grounded in actual files, a second saved
|
|
70
|
+
note, and clear remaining gaps. It should build on the first investigation and
|
|
71
|
+
distinguish newly learned details from changes to the source. Reopen both files.
|
|
72
|
+
|
|
73
|
+
## Record what happened
|
|
74
|
+
|
|
75
|
+
> Result: Pass / Fail / Blocked / Needs review
|
|
76
|
+
>
|
|
77
|
+
> Project and source revision, or archive/version supplied:
|
|
78
|
+
>
|
|
79
|
+
> App and Researcher version:
|
|
80
|
+
>
|
|
81
|
+
> Saved notes:
|
|
82
|
+
>
|
|
83
|
+
> Connections checked against source:
|
|
84
|
+
>
|
|
85
|
+
> Surprising findings, unsupported claims or unanswered questions:
|
|
86
|
+
|
|
87
|
+
**Pass** means the notes saved and reopened, the sampled claims matched the source,
|
|
88
|
+
and continuation retained earlier work. **Fail** means you found a wrong claim,
|
|
89
|
+
lost work or a failed save. **Blocked** means access or setup prevented the test.
|
|
90
|
+
**Needs review** means you could run it but cannot yet assess a substantive claim.
|
|
91
|
+
Wording and graph size may vary; a partial map with explicit gaps is useful.
|
|
92
|
+
|
|
93
|
+
Keep the run for review. This checks a sampled source investigation and
|
|
94
|
+
continuation; it does not establish complete coverage, runtime behavior or
|
|
95
|
+
compatibility with a Lab. See the [vault guide](researcher-vault.md) for storage and cleanup.
|