@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,725 @@
|
|
|
1
|
+
# Researcher skill verification
|
|
2
|
+
|
|
3
|
+
**Candidate:** `n8r-surface:research` (**n8r-surface Researcher**) **0.1.8**, updated 5 November 2026.
|
|
4
|
+
This is a partial #17 increment. ChatGPT desktop / Work lifecycle acceptance is
|
|
5
|
+
**pending**, not passed. No Lab or standalone CLI research claim follows.
|
|
6
|
+
The bounded Skeleton Surface creation and reconciliation human checks passed;
|
|
7
|
+
see the human verification record below.
|
|
8
|
+
|
|
9
|
+
The implementation/evidence commits are identified by the associated draft PR;
|
|
10
|
+
use the exact candidate commit when repeating the procedure.
|
|
11
|
+
|
|
12
|
+
## Skeleton Surface: 0.1.8
|
|
13
|
+
|
|
14
|
+
The authorized increment defines Skeleton Surface v0.1 as a provisional Markdown
|
|
15
|
+
brief and adds the [installed-skill procedure](researcher-skeleton-check.md).
|
|
16
|
+
State X is installed 0.1.7 and the synthetic Cedar Chat source pack revision 1.
|
|
17
|
+
Input Y is SKELETON-01's exact brief/save prompt. Outcome Z adds named profile
|
|
18
|
+
and revision guidance, linked evidence, interception coverage and explicit
|
|
19
|
+
successor reconciliation without setup changes.
|
|
20
|
+
|
|
21
|
+
The baseline agent read installed 0.1.7 and both source files, saved and read back
|
|
22
|
+
its own brief. It already distinguished model proposals from actual MCP calls,
|
|
23
|
+
identified the hook's allow/deny powers and worker/browser bypasses, and retained
|
|
24
|
+
source hashes and unknowns. These behaviors passed and are retained, not invented
|
|
25
|
+
failures. The output had no named profile version or explicit Surface revision;
|
|
26
|
+
0.1.7 had no named profile/lifecycle procedure. The user explicitly authorized
|
|
27
|
+
that missing guidance. At that stage, human acceptance and automatic Lab
|
|
28
|
+
recording remained unproved.
|
|
29
|
+
|
|
30
|
+
### Installed candidate and agent rehearsal
|
|
31
|
+
|
|
32
|
+
Implementation `7ba88ae2fef186d0e3f836a034e422f8bbe19b03` was pushed before
|
|
33
|
+
installation. The documented marketplace remove/add route switched the existing
|
|
34
|
+
Git marketplace from the merged prior branch to `feat/17-skeleton-surface`;
|
|
35
|
+
plugin add/list completed successfully. All four commands exited 0. The fetched
|
|
36
|
+
snapshot matched that implementation commit; exactly one enabled 0.1.8 was listed
|
|
37
|
+
and all twelve installed package files matched the maintained source bytes.
|
|
38
|
+
Environment: 4 November 2026, macOS ARM64, Codex CLI 0.139.0, Python 3.13.1,
|
|
39
|
+
local filesystem harness. No separate model API or target service was configured.
|
|
40
|
+
|
|
41
|
+
A fresh agent read the installed 0.1.8 skill and bundled references, then executed
|
|
42
|
+
SKELETON-01's exact prompt against the same two source files as the baseline. It
|
|
43
|
+
saved/read back a 6,321-byte Markdown brief identifying Skeleton Surface v0.1 and
|
|
44
|
+
Surface working-draft revision 1. Independent inspection checked the source
|
|
45
|
+
hashes, twelve node labels, nine edge IDs, interception opportunities, hook powers,
|
|
46
|
+
browser/worker bypasses, unknown bindings and portable evidence references.
|
|
47
|
+
|
|
48
|
+
The coordinator preserved the first output and original source bytes, then made
|
|
49
|
+
only SKELETON-02's documented comment/database/inference declaration edits in the
|
|
50
|
+
disposable settings copy. A different fresh agent received the predecessor,
|
|
51
|
+
current two-file source and exact reconciliation prompt through installed 0.1.8.
|
|
52
|
+
It saved/read back revision 2, retained the profile and all twelve node/nine edge
|
|
53
|
+
identities, and distinguished the two new declarations from effective bindings
|
|
54
|
+
or successful connections. It did not infer proxy behavior from a hostname. Its
|
|
55
|
+
comparison also retained the older documentation statement as separate evidence.
|
|
56
|
+
The agent inherited old settings claims from the predecessor; it was not supplied
|
|
57
|
+
the separately preserved revision-1 settings bytes. The coordinator checked those
|
|
58
|
+
bytes independently. No developing agent wrote either agent's research findings.
|
|
59
|
+
|
|
60
|
+
Independent readback confirmed the first output remained byte-identical, both
|
|
61
|
+
current source hashes matched the successor, and sources were unchanged during
|
|
62
|
+
research. Outputs remain in the selected vault's trial folder; local paths and
|
|
63
|
+
private comparison research are not published. The three existing private Surface
|
|
64
|
+
files were reviewed locally for meaning/coverage differences and their index
|
|
65
|
+
hashes remained unchanged; they are not public fixtures or verified product claims.
|
|
66
|
+
|
|
67
|
+
| Evidence | SHA-256 |
|
|
68
|
+
| --- | --- |
|
|
69
|
+
| Installed-0.1.7 baseline brief | `e190c63c4aafa0b6c12e615b510b7e3beec1a25af13872356be25e78a4c3fdcd` |
|
|
70
|
+
| Installed-0.1.8 skill | `cd38dcd85f67ca962f06d86178009308aea527c9783fa0e0a3f834f783f1ebf4` |
|
|
71
|
+
| Candidate first brief | `1877d2997d9d3ad60bb7241e64ee3907ce0d2e74d8100ff4995ef5e11003de93` |
|
|
72
|
+
| Candidate successor | `c91c2131236a8a95c4e8a1d4344ca02c62dd6ffee257e408a937709634dfd746` |
|
|
73
|
+
| Changed synthetic settings | `7e52617dd0918509038a4fc558ba3fb35db30fb268dfd16c9d4d166e0d6bb9a0` |
|
|
74
|
+
|
|
75
|
+
### Checks and limits
|
|
76
|
+
|
|
77
|
+
Skill frontmatter, aligned manifests, 124 changed-file local Markdown links/anchors,
|
|
78
|
+
JSON example syntax, whitespace, repository Markdown lint and all 24 offline
|
|
79
|
+
Python tests passed. Independent scoped review found no actionable issues. GitHub
|
|
80
|
+
checks on implementation `7ba88ae` passed, including library and package checks
|
|
81
|
+
on Node 22, 24 and 26, fixtures/tooling, Markdown and local links. No local npm
|
|
82
|
+
run is claimed for this instruction-only change. Lychee was unavailable locally;
|
|
83
|
+
its full local-link check passed in CI. Eight unrelated working files were retained
|
|
84
|
+
and excluded from commits; the branch switch incorporated only the upstream
|
|
85
|
+
comment change in one of them before their preservation hashes were recorded.
|
|
86
|
+
|
|
87
|
+
This was a bounded installed-instruction agent rehearsal, not human acceptance,
|
|
88
|
+
enforced source/memory isolation, Work UI lifecycle, runtime security enforcement,
|
|
89
|
+
Lab automation, vendor compatibility or structured-output validation. No service
|
|
90
|
+
was installed or started for the source pack. The separate human trial follows.
|
|
91
|
+
Detailed and recreation profiles remain future work.
|
|
92
|
+
|
|
93
|
+
### Human verification: 5 November 2026
|
|
94
|
+
|
|
95
|
+
The tester reported **Pass** for both SKELETON-01 and SKELETON-02 in the
|
|
96
|
+
[walkthrough](researcher-skeleton-check.md), against candidate
|
|
97
|
+
`9ca7e5352401f2c35a5d5eb066b85651cadfaf12`. The guided prompts supplied the trial
|
|
98
|
+
folder and restricted evidence to its source files, plus the predecessor for
|
|
99
|
+
reconciliation, without other chats, projects or the web. Each step requested a
|
|
100
|
+
fresh chat with installed Researcher 0.1.8. Source/memory isolation was not enforced.
|
|
101
|
+
|
|
102
|
+
Preparation and independent readback used macOS ARM64, Codex app
|
|
103
|
+
26.1021.31345 (build 21828, bundle `com.openai.codex`), Codex CLI 0.139.0 and
|
|
104
|
+
Python 3.13.1. All twelve installed package files matched the candidate before
|
|
105
|
+
the trial and after the second pass. The existing agent rehearsal above remains
|
|
106
|
+
a separate result.
|
|
107
|
+
|
|
108
|
+
SKELETON-01 saved `skeleton-surface-001.md` (7,544 bytes). Independent readback
|
|
109
|
+
confirmed Skeleton Surface v0.1, Surface revision 001, both source hashes,
|
|
110
|
+
unknown bindings, documented hook powers and worker/browser bypasses. Both
|
|
111
|
+
revision-1 source files were unchanged. The coordinator preserved the output
|
|
112
|
+
and original sources, then changed only the disposable settings comment and
|
|
113
|
+
the two target values specified by SKELETON-02.
|
|
114
|
+
|
|
115
|
+
SKELETON-02 saved `skeleton-surface-002.md` (12,254 bytes). Readback confirmed
|
|
116
|
+
the unchanged first output, twelve stable role identities, all nine edge IDs
|
|
117
|
+
and an unchanged interception table. The successor retained the profile version,
|
|
118
|
+
recorded Surface revision 002 and distinguished the new database/inference
|
|
119
|
+
declarations from effective configuration or successful connections. It noted
|
|
120
|
+
the unchanged product-document statement separately and attributed old settings
|
|
121
|
+
to the predecessor rather than claiming to have read historical settings bytes.
|
|
122
|
+
Both current source hashes matched their values before reconciliation. Relative
|
|
123
|
+
source/predecessor links and heading anchors resolved; the successor explicitly
|
|
124
|
+
warned that the predecessor's settings link now points to current source bytes.
|
|
125
|
+
|
|
126
|
+
| Human-trial evidence | SHA-256 |
|
|
127
|
+
| --- | --- |
|
|
128
|
+
| First brief | `b4003865e0ed79514392438cfee0434bf5fad63086d94fb6309845754a56d758` |
|
|
129
|
+
| Successor | `3f99713f240642c8c06baa55025c22a1ae3dc9658bfd6d50075f10f2f8f986e0` |
|
|
130
|
+
| Product document, unchanged | `5836520dcb2c6912988f57cbf6d88f557a69d14f7433c34a1387e0565753b997` |
|
|
131
|
+
| Original settings, preserved | `6ae9b186a8bae39c70180e753baea8ae0c28ce2f66c0d1aa757b537609192b85` |
|
|
132
|
+
| Changed settings | `7e52617dd0918509038a4fc558ba3fb35db30fb268dfd16c9d4d166e0d6bb9a0` |
|
|
133
|
+
|
|
134
|
+
The outputs and preservation copies remain local; no local paths or research
|
|
135
|
+
files are published here. This human acceptance covers the two Markdown brief
|
|
136
|
+
interactions. Work picker/unload/reinstall lifecycle, live enforcement, automatic
|
|
137
|
+
Lab revision recording, vendor compatibility and validated structured output
|
|
138
|
+
remain unproved. Issue #17 remains open; review readiness and merge are separate
|
|
139
|
+
decisions.
|
|
140
|
+
|
|
141
|
+
## Optional save offer: 0.1.7
|
|
142
|
+
|
|
143
|
+
State X: a real source investigation through installed 0.1.6 returned a partial
|
|
144
|
+
map without offering persistence. The user clarified that save-on-request is
|
|
145
|
+
intentional and requested an optional offer. Input Y: investigate supplied
|
|
146
|
+
sources without a save instruction. Outcome Z: show the graph, offer once to
|
|
147
|
+
save a numbered Markdown Surface working draft at the resolved destination,
|
|
148
|
+
and write only after acceptance. Existing save authorization needs no new question;
|
|
149
|
+
a declined offer is not repeated. Structured conversion remains a separate step.
|
|
150
|
+
|
|
151
|
+
### Human verification
|
|
152
|
+
|
|
153
|
+
Prerequisites: installed Researcher 0.1.7, a local host with file access, and the
|
|
154
|
+
[prepared source pack](../../examples/researcher-vault/chat-service). Open a fresh
|
|
155
|
+
chat with that folder selected. Choose an unused folder under your vault's `runs/`
|
|
156
|
+
for this trial; tell the chat to use it as the test vault, with Surface drafts in
|
|
157
|
+
`surfaces/<source-slug>/`. No service, credentials or installation is needed beyond
|
|
158
|
+
the existing skill. These are conversational interactions, with no exit code.
|
|
159
|
+
|
|
160
|
+
- [ ] Select Researcher and ask: “Map the AI connections in this source folder.”
|
|
161
|
+
Expect a partial graph with evidence and runtime unknowns, followed by one
|
|
162
|
+
optional save offer naming a numbered file. Check the test vault: no file or
|
|
163
|
+
directory has been created by the offer.
|
|
164
|
+
- [ ] Reply: “No, keep it in chat. Explain the unresolved search connection.”
|
|
165
|
+
Expect continued analysis without a write or another save offer.
|
|
166
|
+
- [ ] Reply: “Now save the Surface working draft in the test vault.” Expect a
|
|
167
|
+
save without another permission question, followed by readback and an openable
|
|
168
|
+
file link. Open it: graph, evidence, limits and Recommended next steps remain.
|
|
169
|
+
It is Markdown working research, not a validated JSON definition.
|
|
170
|
+
|
|
171
|
+
Report **Pass / Fail / Blocked**, skill/app version, the offered path, saved link
|
|
172
|
+
and any failed step. Wording and unused numbers may vary. A premature write,
|
|
173
|
+
repeated offer after refusal, or unnecessary confirmation of the explicit save
|
|
174
|
+
is a failure. Keep the test output for review; optional cleanup removes only the
|
|
175
|
+
new test folder after review.
|
|
176
|
+
|
|
177
|
+
### Maintainer evidence
|
|
178
|
+
|
|
179
|
+
The baseline is the observed installed-0.1.6 conversation, not a synthetic failed
|
|
180
|
+
run. Implementation `0431c547b108db29fcfca790a1fbfe6dfde316e1` was pushed and installed
|
|
181
|
+
using the documented marketplace upgrade/add/list commands (all exit 0).
|
|
182
|
+
Exactly one enabled 0.1.7 was listed; all eleven installed package files matched
|
|
183
|
+
maintained source. Environment: macOS, Codex CLI 0.139.0, local filesystem harness.
|
|
184
|
+
|
|
185
|
+
A fresh agent investigated the prepared pack through the candidate source skill,
|
|
186
|
+
returned an evidenced map and offered a concrete numbered file. Independent
|
|
187
|
+
inspection confirmed the proposed test directory did not exist. After a simulated
|
|
188
|
+
user refusal, it explained the search gap without saving or repeating the offer.
|
|
189
|
+
After a simulated explicit save request, it reread the installed 0.1.7 skill,
|
|
190
|
+
re-established source identity and saved/read back the draft without another
|
|
191
|
+
confirmation. The developing agent did not write its research findings.
|
|
192
|
+
|
|
193
|
+
Independent readback checked all three source hashes, graph, uncertainty,
|
|
194
|
+
recommendations and source revision change (source bytes unchanged). The trial
|
|
195
|
+
used a disposable vault `runs/` folder. The note's “Human decisions” section
|
|
196
|
+
records simulated test replies, not separate human acceptance.
|
|
197
|
+
Saved draft SHA-256: `3ec9e68f1eb9ac67bff2fb6c0a9d90d929ead2256227e1606e76889568d7932b`.
|
|
198
|
+
Installed skill SHA-256:
|
|
199
|
+
`2d18698959fb8a23140ee577cac706c5f9594bda2e94742980fbb18094bb29ac`.
|
|
200
|
+
|
|
201
|
+
Skill frontmatter, 57 local Markdown links/anchors, JSON example syntax and
|
|
202
|
+
whitespace checks passed. All eight unrelated working files were hash-checked
|
|
203
|
+
unchanged. Markdownlint was unavailable on PATH and was not run. No runtime
|
|
204
|
+
code changed; library/CLI tests were not needed for this instruction increment.
|
|
205
|
+
This is one bounded agent rehearsal, not a statistical behavior benchmark.
|
|
206
|
+
Human acceptance and Work UI lifecycle remain separate and pending.
|
|
207
|
+
|
|
208
|
+
## Saved recommendations: 0.1.6
|
|
209
|
+
|
|
210
|
+
State X: installed 0.1.5 had generic remaining-work and predecessor instructions,
|
|
211
|
+
but no required recommendation section, Surface-note precedence or three-part
|
|
212
|
+
resumption guidance. A fresh Researcher read the installed skill and the prepared
|
|
213
|
+
chat-service source pack, then saved/read back a research note. Independent
|
|
214
|
+
inspection found a general continuation paragraph but no **Recommended next steps**
|
|
215
|
+
section. The developing agent did not write the findings.
|
|
216
|
+
|
|
217
|
+
Input Y: map the prepared sources and save; then, in a fresh chat, read the saved
|
|
218
|
+
recommendations, compare the sources after changing the document-search address,
|
|
219
|
+
and save a successor. Outcome Z: actionable recommendations in both notes, used
|
|
220
|
+
and updated on continuation, with the predecessor preserved. The
|
|
221
|
+
[prepared walkthrough](researcher-prepared-check.md) supplies the exact prompts,
|
|
222
|
+
visible checks and Pass / Fail / Blocked report. Use installed 0.1.6 and a fresh
|
|
223
|
+
run folder; no live service is needed. Surface-note precedence is a separate
|
|
224
|
+
instruction check; this source-pack rehearsal uses research notes.
|
|
225
|
+
|
|
226
|
+
Candidate 0.1.6 adds the rule and detailed note guidance, updates both manifests
|
|
227
|
+
and the installation/walkthrough version. Implementation
|
|
228
|
+
`c682615e124ca8aded3b771080c7a5e3a2da63e5` was pushed before the requested
|
|
229
|
+
`codex plugin marketplace upgrade n8r-surface`,
|
|
230
|
+
`codex plugin add n8r-surface@n8r-surface --json` and
|
|
231
|
+
`codex plugin list --marketplace n8r-surface --json`. All exited 0. The fetched
|
|
232
|
+
marketplace matched that commit; exactly one enabled 0.1.6 was listed, and all
|
|
233
|
+
eleven installed files matched the maintained source byte for byte.
|
|
234
|
+
|
|
235
|
+
Two fresh Researcher agents then rehearsed the prepared save/continue interactions
|
|
236
|
+
through installed 0.1.6. The first received only the three prepared sources and
|
|
237
|
+
saved `ai-components-001.md`. After independent readback and a preservation copy,
|
|
238
|
+
the coordinator changed only the disposable `DOCUMENT_SEARCH_URL` value to
|
|
239
|
+
`https://search.example.test`. The second agent read the predecessor and current
|
|
240
|
+
sources and saved `ai-components-002.md`. Neither received prewritten findings,
|
|
241
|
+
the parent's transcript or the walkthrough's expected results.
|
|
242
|
+
|
|
243
|
+
Independent readback verified all three current source hashes, six stable
|
|
244
|
+
component IDs, working relative note links and unchanged predecessor bytes. Both
|
|
245
|
+
notes contain **Recommended next steps** with investigation, reason and resumption
|
|
246
|
+
point. The successor explicitly resolves the missing target declaration and
|
|
247
|
+
changes the first recommendation to investigating effective use, while retaining
|
|
248
|
+
the remaining unknowns and evidence blockers. It does not claim the service works.
|
|
249
|
+
Shared source examples and the eight unrelated working files stayed unchanged.
|
|
250
|
+
|
|
251
|
+
| Saved evidence | SHA-256 |
|
|
252
|
+
| --- | --- |
|
|
253
|
+
| Installed-0.1.5 baseline | `f46380ea3e07f9461911a6d92adcaf77008bcba29250c2786ef21a1abeda717c` |
|
|
254
|
+
| Installed-0.1.6 first note | `44898be0a3ec75388111022d1a5f5606595b339e0635e05360211a2a65ea2e6e` |
|
|
255
|
+
| Installed-0.1.6 successor | `aef6ac573f5566214acc4119493e7703e1c99e6c254317332449f4ceaf0800f8` |
|
|
256
|
+
| Installed-0.1.6 skill | `fa10fe3f93a5f52f114f5a97507e1f22cdb13b4e9c888111f8a4d12a198cefeb` |
|
|
257
|
+
|
|
258
|
+
Environment: 4 November 2026, macOS ARM64, Codex CLI 0.139.0 and fresh local
|
|
259
|
+
host agents with filesystem tools. Outputs remain in the selected vault's
|
|
260
|
+
`runs/` directory. This is an agent rehearsal, not human acceptance or enforced
|
|
261
|
+
source/memory isolation. A separate fresh instruction check recovered Surface-note
|
|
262
|
+
precedence, preservation of older notes without recommendations and respect for
|
|
263
|
+
narrowed user scope; it did not exercise a saved Surface successor.
|
|
264
|
+
|
|
265
|
+
Seven changed Markdown files passed markdownlint-cli2 0.24.0 with MD013/MD041
|
|
266
|
+
disabled; 55 local links/anchors, manifest versions and whitespace passed. Three
|
|
267
|
+
JSON examples parsed (syntax only). Focused review found no actionable issue.
|
|
268
|
+
No npm/library/CLI behavior changed or is claimed tested. This remains a partial
|
|
269
|
+
increment of issue #17; structured-output, runtime and Work UI acceptance remain
|
|
270
|
+
unproved.
|
|
271
|
+
|
|
272
|
+
## Repository vault rehearsal: 0.1.5
|
|
273
|
+
|
|
274
|
+
The [vault walkthrough](researcher-prepared-check.md) adds prepared fictional documents and a
|
|
275
|
+
teammate walkthrough to this repository. The initial state is an already installed
|
|
276
|
+
0.1.5 skill and a fresh copy of source pack version 1 under `vault/runs/`. The
|
|
277
|
+
expected outcome is two saved notes: a baseline, then a comparison after changing
|
|
278
|
+
only the document-search address. Before this increment, the teammate procedure
|
|
279
|
+
required a maintainer to prepare a separate source checkout and input folder.
|
|
280
|
+
No installed-skill behavior or package bytes changed.
|
|
281
|
+
|
|
282
|
+
On 4 November 2026, two fresh Researcher agents rehearsed the prompts through the
|
|
283
|
+
installed 0.1.5 instructions. Neither received the parent transcript or expected
|
|
284
|
+
findings. The first read the three input files and saved `ai-surface-001.md`.
|
|
285
|
+
After independent readback, the coordinator copied the note for preservation and
|
|
286
|
+
changed only `DOCUMENT_SEARCH_URL=` to
|
|
287
|
+
`DOCUMENT_SEARCH_URL=https://search.example.test` in the disposable working copy.
|
|
288
|
+
The second agent received the first note and the current three input files,
|
|
289
|
+
then saved `ai-surface-002.md`. Neither output was prewritten by the coordinator.
|
|
290
|
+
|
|
291
|
+
Independent readback checked all three baseline and four comparison evidence
|
|
292
|
+
hashes, source links and the six stable component labels. The comparison retained
|
|
293
|
+
the gateway address, product capabilities and unknowns, identified the declared
|
|
294
|
+
search target change and made no claim that search worked. The first note matched
|
|
295
|
+
its backup byte for byte; all shared example files remained unchanged. All six
|
|
296
|
+
run files were ignored by Git. A separate question to the second agent recovered
|
|
297
|
+
direct Experiment-to-Lab setup ownership from the installed reference.
|
|
298
|
+
|
|
299
|
+
| Evidence | SHA-256 |
|
|
300
|
+
| --- | --- |
|
|
301
|
+
| Initial `current.env` | `619e4831c8f0a0b119bb80553aad0e9f65f9127ef0534b3e22c59944a7b3c334` |
|
|
302
|
+
| Changed working `current.env` | `72bae3ebbe82b790936dbdd207d9bad89cd811be833a5b95ee5e90165e3ad6c3` |
|
|
303
|
+
| Baseline note | `d902179b481e83f6805a1830302b329291e31e2227b2d94944458d456822486b` |
|
|
304
|
+
| Comparison note | `387151d6645fdf5ccac4ed3575a1be1e76ca51bf7d18d275ae80d7188ff1a554` |
|
|
305
|
+
|
|
306
|
+
Environment: macOS ARM64, Codex CLI 0.139.0 and local host agents with filesystem
|
|
307
|
+
tools. The installed list showed one enabled 0.1.5, and all eleven installed files
|
|
308
|
+
matched the committed package at `2a755b79fe5bc0c379a29ec7af8fddc815bf756e`.
|
|
309
|
+
The vault was a working addition based on that revision; the associated PR
|
|
310
|
+
identifies its committed revision. This is an agent rehearsal with restricted
|
|
311
|
+
task instructions, not an enforced-isolation evaluation. App memory toggles,
|
|
312
|
+
exclusive file access and tool restrictions were not independently verified.
|
|
313
|
+
Human acceptance, an investigation of the user's next chosen repository, runtime
|
|
314
|
+
behavior and generated structured Surfaces remain unproved by this check.
|
|
315
|
+
|
|
316
|
+
The ten changed/new Markdown files passed markdownlint-cli2 0.24.0 with
|
|
317
|
+
MD013/MD041 disabled; 74 local links/anchors passed. The three existing JSON
|
|
318
|
+
examples parsed (syntax only). Walkthrough review, ignore-rule checks and
|
|
319
|
+
whitespace checks passed. The eight paused #16 files and the historical
|
|
320
|
+
LibreChat technical procedure remained unchanged. No library or CLI tests were
|
|
321
|
+
run for these documentation and source-pack additions.
|
|
322
|
+
|
|
323
|
+
## Local vault relocation
|
|
324
|
+
|
|
325
|
+
The prepared rehearsal above ran before the vault was moved. At the user's
|
|
326
|
+
request, the complete working vault was moved to a separate local directory.
|
|
327
|
+
All sixteen files present at the move retained their SHA-256 values, including
|
|
328
|
+
the six rehearsal files. Saved-note links remain relative within the moved run.
|
|
329
|
+
The local path is recorded in ignored `.local/vault-path`; it is not public
|
|
330
|
+
configuration or a new installed-skill default.
|
|
331
|
+
|
|
332
|
+
Reusable inputs now live in [the prepared source pack](../../examples/researcher-vault/README.md),
|
|
333
|
+
and the [vault guide](researcher-vault.md) documents notes, intermediate artifacts
|
|
334
|
+
and saved Surface descriptions. Local navigation documents were updated after
|
|
335
|
+
the move, and four obsolete ignore files were removed from the non-Git vault;
|
|
336
|
+
source inputs and research outputs were preserved. The walkthroughs
|
|
337
|
+
now resolve their `runs/` paths from the chosen vault folder. The move and file
|
|
338
|
+
readback do not constitute a new human or sandbox-isolation acceptance run.
|
|
339
|
+
|
|
340
|
+
## Direct Lab ownership correction: 0.1.5
|
|
341
|
+
|
|
342
|
+
The user confirmed that Bench is retired. Canonical concepts, diagrams and the
|
|
343
|
+
bundled model reference now use **Lab → Experiment → Setup**. Experiments request
|
|
344
|
+
configuration directly from their Lab; the Lab owns resources and local bindings.
|
|
345
|
+
Historical records retain their original meaning. The old Bench guide URL is a
|
|
346
|
+
retirement notice. Serialized examples contain no Bench entities, so none needed
|
|
347
|
+
rewriting; no artefact-contract shape changed.
|
|
348
|
+
|
|
349
|
+
Before the correction, a fresh evaluator reading only installed 0.1.4's reference
|
|
350
|
+
returned Lab → Bench → Experiment and said setup ownership was not explicit.
|
|
351
|
+
That is direct evidence of the stale guidance. Version 0.1.5 changes the bundled
|
|
352
|
+
meaning and version metadata; the discovery and note-storage method is unchanged.
|
|
353
|
+
The controlled trial below deliberately used 0.1.4 for both passes, with the user's
|
|
354
|
+
ownership correction supplied separately. It is not retroactively labeled 0.1.5.
|
|
355
|
+
|
|
356
|
+
The implementation checks passed: 17 changed/new Markdown files with
|
|
357
|
+
markdownlint-cli2 0.24.0 (MD013/MD041 disabled), 135 local links/anchors, three JSON
|
|
358
|
+
example parses plus identifier/endpoint/local-requirement checks, skill metadata,
|
|
359
|
+
manifest version/interface alignment and whitespace. Both shell blocks in the
|
|
360
|
+
human trial guide were executed from the source root, exited 0 and produced the
|
|
361
|
+
expected fixture hashes. Independent review found no actionable issue or public
|
|
362
|
+
material leak. The eight paused #16 files and existing private notes were unchanged.
|
|
363
|
+
No npm/library/CLI behavior changed or is claimed tested by this increment.
|
|
364
|
+
|
|
365
|
+
Implementation `fe64ab51e47f493251724a06e62259dea1feee06` was pushed, then
|
|
366
|
+
`codex plugin marketplace upgrade n8r-surface --json` and
|
|
367
|
+
`codex plugin add n8r-surface@n8r-surface --json` both exited 0. Installed-list
|
|
368
|
+
readback showed exactly one enabled 0.1.5 from the Git marketplace. All eleven
|
|
369
|
+
installed files matched that committed package; private notes and paused work
|
|
370
|
+
retained their hashes.
|
|
371
|
+
|
|
372
|
+
A fresh evaluator then read only the installed skill and meanings reference.
|
|
373
|
+
It recovered Lab → Experiment → Setup, direct Experiment-to-Lab requests and
|
|
374
|
+
Lab-owned configuration/bindings. It treated an old Bench reference as historical,
|
|
375
|
+
without current authority or rewriting an earlier Run, and correctly kept Labs
|
|
376
|
+
optional for source-only research. This is an instruction interpretation check,
|
|
377
|
+
not runtime enforcement, Work UI acceptance or a Lab consumer trial.
|
|
378
|
+
Installed skill SHA-256:
|
|
379
|
+
`577378ed327dddb4afb75d645299ce55f6784bb7be8f69d78415cfbaf342981f`.
|
|
380
|
+
Installed meanings-reference SHA-256:
|
|
381
|
+
`791fa5436fb7fe1707b3dba6f2b3b9c75f5d62c8778e9ab436142b9e5a88489f`.
|
|
382
|
+
|
|
383
|
+
## Controlled declaration trial: 0.1.4
|
|
384
|
+
|
|
385
|
+
State X: installed 0.1.4 matched all eleven committed package files at
|
|
386
|
+
`ce394b1e8ddafe206e57e014285b6ef576339c4e`. Source was LibreChat
|
|
387
|
+
`e1dfc10449ff713faffacd60273fddcfe2c0a698`, with the existing dirty client manifest
|
|
388
|
+
excluded. Environment: macOS ARM64, Codex CLI 0.139.0, Python 3.13.1; actual local
|
|
389
|
+
host agents and filesystem tools. No hidden model or desktop version is asserted.
|
|
390
|
+
|
|
391
|
+
A fresh Researcher agent read the installed instructions, prior notes and actual
|
|
392
|
+
sources, then saved/read back a baseline for a task-owned partial configuration.
|
|
393
|
+
Only after independent baseline readback did the coordinator change
|
|
394
|
+
`RAG_API_URL=` to `RAG_API_URL=https://rag.example.test`. A second fresh agent
|
|
395
|
+
received the saved baseline and current inputs without expected findings, followed
|
|
396
|
+
source evidence and saved/read back a numbered successor. The coordinator kept
|
|
397
|
+
expected findings separately and did not write either research output.
|
|
398
|
+
|
|
399
|
+
The comparison identified the declared target change on the retained RAG role,
|
|
400
|
+
kept product capability unchanged and left deployed state unknown. It preserved
|
|
401
|
+
all twelve component labels, earlier scoped human context, authentication
|
|
402
|
+
uncertainties and unrelated graph claims. New focused reads described extraction
|
|
403
|
+
routing gates and fallback behavior; those were additional source findings, not
|
|
404
|
+
extra configuration changes or exercised operations.
|
|
405
|
+
|
|
406
|
+
Independent verification reopened both outputs, matched all 17 baseline and 19
|
|
407
|
+
successor manifest rows, checked decisive URL guards/configuration expressions
|
|
408
|
+
and extraction-routing source ranges, and confirmed earlier notes and source
|
|
409
|
+
changes were preserved. The saved-note digests are:
|
|
410
|
+
|
|
411
|
+
| Record | SHA-256 |
|
|
412
|
+
| --- | --- |
|
|
413
|
+
| Baseline research | `06a58ba6601ff1c982a4006274adf01b5aaf04fb3a6a7eeac28b2cbd74815a23` |
|
|
414
|
+
| Reconciliation successor | `f9a9da4dce335fd960e3c6c8f8b98d5d5b425a07a32407e440ff455267e9fd16` |
|
|
415
|
+
|
|
416
|
+
The [repeatable procedure](researcher-reconciliation-trial.md) gives commands,
|
|
417
|
+
prompts, exact fixture hashes, failure criteria and cleanup. Private research,
|
|
418
|
+
human setup details and local paths remain outside this public repository.
|
|
419
|
+
The retained input snapshots identify a declared fixture, not a loaded environment.
|
|
420
|
+
No application request, service, inference, persistence or RAG interaction ran.
|
|
421
|
+
This is one installed-skill agent reconciliation rehearsal, not human acceptance,
|
|
422
|
+
live enablement detection, full graph coverage or structured Surface validation.
|
|
423
|
+
|
|
424
|
+
The [recreation handoff](recreation-handoff.md) records proposed portable roles,
|
|
425
|
+
recipient binding responsibilities and a required consumer proof. The separate
|
|
426
|
+
application assessment remains private. No Lab adapter or recreation was executed.
|
|
427
|
+
|
|
428
|
+
## Review corrections and checks: 0.1.4
|
|
429
|
+
|
|
430
|
+
Independent review identified two corrections: check the installed version before
|
|
431
|
+
reuse and refresh a Git marketplace snapshot before reinstalling; and label an
|
|
432
|
+
edge declared only when an applicable declaration supports it. Candidate 0.1.4
|
|
433
|
+
narrows that instruction. It does not change the discovery method or note storage.
|
|
434
|
+
0.1.4 skill SHA-256:
|
|
435
|
+
`ed490cf27c127896ea7db0a630bfe24e784508fde2c50c34e2e2dbee8d0bc55a`.
|
|
436
|
+
0.1.4 discovery-reference SHA-256:
|
|
437
|
+
`c3fc8065e573c74791b9da04154fe9e0f6c609e3cfd98ee9b72bcccec1a1d340`.
|
|
438
|
+
|
|
439
|
+
After installing 0.1.4, a targeted instruction regression correctly kept an MCP
|
|
440
|
+
SDK-only clue and an unsupported proxy hypothesis out of a selected graph's
|
|
441
|
+
declared edges, while retaining an applicable staging OIDC configuration as
|
|
442
|
+
declared with its runtime state unknown. This was a synthetic interpretation
|
|
443
|
+
check, not new source or UI evidence. The source-backed graph and continuation
|
|
444
|
+
trials below identify their earlier candidate versions and exact digests.
|
|
445
|
+
|
|
446
|
+
Current checks used macOS ARM64, Codex CLI 0.139.0 and Python 3.14.7. All eleven
|
|
447
|
+
installed 0.1.4 files matched the local candidate; manifest identity/presentation
|
|
448
|
+
and skill metadata validation passed. Nine changed Markdown files passed
|
|
449
|
+
markdownlint-cli2 0.24.0 with MD013/MD041 disabled; Lychee 0.24.2 reported 68 local
|
|
450
|
+
links/anchors OK, zero errors and ten excluded. JSON examples parsed (syntax only),
|
|
451
|
+
the 19 existing offline Python workflow tests passed, shell syntax passed, and
|
|
452
|
+
whitespace checks passed. The eight paused #16 files retained their initial hashes.
|
|
453
|
+
No npm/library/CLI changes are included or claimed tested by this increment.
|
|
454
|
+
|
|
455
|
+
An earlier broad lint attempt inherited repository-wide globs and reported the
|
|
456
|
+
existing MD018 issue at `startup-human-check.md:171`. That unrelated file was left
|
|
457
|
+
unchanged; the final lint above targets this increment's files. Independent review
|
|
458
|
+
found no remaining blocking issue after the two corrections.
|
|
459
|
+
|
|
460
|
+
The implementation was pushed at
|
|
461
|
+
`de65eeb477c0780fffb2f700ff93d6f04ea201af`. A Git marketplace snapshot still at
|
|
462
|
+
`3eff6fdd710f7670d4511f83233a01444d658408` was then refreshed with
|
|
463
|
+
`codex plugin marketplace upgrade n8r-surface --json`, followed by
|
|
464
|
+
`codex plugin add n8r-surface@n8r-surface --json` and the installed-list readback.
|
|
465
|
+
All exited 0; upgrade reported no errors, the fetched snapshot matched `de65eeb`,
|
|
466
|
+
and exactly one enabled 0.1.4 was listed from the Git source. All eleven installed
|
|
467
|
+
files matched the committed package. The four numbered private research notes
|
|
468
|
+
and all eight paused #16 files retained their hashes. This rehearses the update
|
|
469
|
+
path without a manual clone/build; it does not establish Work UI refresh behavior.
|
|
470
|
+
|
|
471
|
+
## Graph-first discovery guidance: 0.1.3
|
|
472
|
+
|
|
473
|
+
The user expanded the scope to an AI Surface discovery map, reuse of applicable
|
|
474
|
+
product knowledge, reconciliation of existing descriptions, and permitted live
|
|
475
|
+
UI/API evidence. The graph is primary; configuration is inspected only when it
|
|
476
|
+
establishes or explains relevant nodes/edges. The guide distinguishes possible
|
|
477
|
+
connections, a declared setup and dated running-state observations; enabled is
|
|
478
|
+
not exercised. It remains one AI Surface Model with partial descriptions.
|
|
479
|
+
|
|
480
|
+
The installed package now contains three references. All eleven installed files
|
|
481
|
+
were compared byte-for-byte with the source package. Skill entrypoint SHA-256:
|
|
482
|
+
`79257c192dc629ebfa06722b579d61481dafa62ca4d306c2f1c0438b01f66251`.
|
|
483
|
+
Discovery reference SHA-256:
|
|
484
|
+
`2a0df014620907119d6767712f829ca1bad35119107482ea88266a2d2de5e274`.
|
|
485
|
+
The [human guide](researcher-discovery.md#graph-discovery-reconciliation-and-live-evidence)
|
|
486
|
+
contains the actual prompts and expected evidence for discover, reconcile and live
|
|
487
|
+
inspection; these are conversational intents, not new CLI commands or adapters.
|
|
488
|
+
|
|
489
|
+
Before the new reference, a fresh evaluator read installed 0.1.2 and considered
|
|
490
|
+
five synthetic starting conditions. It already distinguished possibilities,
|
|
491
|
+
source declarations and runtime uncertainty correctly. It reported that discovery
|
|
492
|
+
sequences, reconciliation intake and live-inspection procedures were inferred
|
|
493
|
+
from general principles, rather than explicitly supplied by the skill. This is
|
|
494
|
+
an observed guidance gap, not a demonstrated reasoning failure or quality benchmark.
|
|
495
|
+
|
|
496
|
+
A separate fresh evaluator read installed 0.1.3 and all three references, then
|
|
497
|
+
answered these supplied synthetic cases without scenario tools or saved outputs:
|
|
498
|
+
|
|
499
|
+
| Given / user task | Observed bounded response |
|
|
500
|
+
| --- | --- |
|
|
501
|
+
| Unknown folder; browser-tooling package manifest, unread Python server, unrelated theme settings; identify AI relevance. | Inspect structure/entry points; do not infer runtime or AI relevance from filenames; leave unrelated theme settings out. |
|
|
502
|
+
| Docs-only product describes optional OIDC/retrieval and unavailable code. | Map documented alternatives; implementation and selected composition remain unknown; missing code does not prevent useful work. |
|
|
503
|
+
| Code-only SDK dependency and custom inference base URL, many unrelated packages, no runtime access. | Trace caller and endpoint binding; do not infer provider identity from SDK vendor or inventory unrelated packages. |
|
|
504
|
+
| Older guide and two prior Surfaces select different identity providers. | Check identity/revision/scope, preserve both compositions and ask for current selection; do not union them into a deployment. |
|
|
505
|
+
| Staging R1 Surface claims OIDC enabled; R2 file says disabled; admin access refused. | Compare revision-scoped declarations, preserve R1, leave effective state unknown and do not bypass the refusal. |
|
|
506
|
+
| Supplied hypothetical stored-settings view says OIDC on, issuer at a reserved example domain, masked secret; no runtime test. | Record a dated stored-setting connection claim; do not reveal secrets, save settings or claim effective loading/login. |
|
|
507
|
+
|
|
508
|
+
This verifies one instruction-reading response per case, not a statistical
|
|
509
|
+
benchmark, actual reconciliation tool implementation or real computer-use trial.
|
|
510
|
+
Component equivalence across unfamiliar vocabularies and ambiguous UI indicators
|
|
511
|
+
still require evidence/judgment; unsupported meanings stay explicit. No real
|
|
512
|
+
admin system was selected or inspected. Live inspection remains **unverified**.
|
|
513
|
+
|
|
514
|
+
A separate fresh evaluator then loaded installed 0.1.3 and researched the actual
|
|
515
|
+
LibreChat checkout, reusing the saved authentication successor. Its prompt asked
|
|
516
|
+
for a shallow AI-relevant graph and graph-relevant settings; it supplied no
|
|
517
|
+
expected architecture. The agent read 12 additional source files, re-read the
|
|
518
|
+
server entry point and contributor guidance, then saved/read back
|
|
519
|
+
`graph-discovery-001.md`. Its edge table covered documented chat/API entry,
|
|
520
|
+
Agent orchestration/provider options, conditional MCP discovery, persistence and
|
|
521
|
+
MongoDB support, and file-processing/RAG calls. It retained the scoped human
|
|
522
|
+
authentication choice while leaving concrete model/provider, MCP and storage
|
|
523
|
+
instances and runtime use unknown. An initial broad search was truncated;
|
|
524
|
+
focused source reads supported the retained claims. The agent corrected one
|
|
525
|
+
README citation during readback.
|
|
526
|
+
|
|
527
|
+
The parent independently read the saved graph, verified its digest and all 14
|
|
528
|
+
source hash rows, and spot-checked the MongoDB connector and RAG request evidence.
|
|
529
|
+
Graph-note SHA-256:
|
|
530
|
+
`fc9b03d6b718b60c60c3e5b5bf6c74f460697abe2905aa5b0425df545bea50d5`.
|
|
531
|
+
This is one source-reading graph rehearsal on the same LibreChat revision/dirty
|
|
532
|
+
state as the 0.1.2 trial, not a deployed or exercised graph. Private deployment
|
|
533
|
+
configuration, credentials and infrastructure details are not published here.
|
|
534
|
+
|
|
535
|
+
The user then supplied additional setup context. The agent preserved the first
|
|
536
|
+
graph and saved/read back `graph-discovery-002.md`, retaining that context as a
|
|
537
|
+
dated human report, not source or live verification. The parent independently
|
|
538
|
+
reopened it and verified the retained statement, earlier human choice and digest:
|
|
539
|
+
`0dbd8739725e80f86a6bc9b6d3bb41bb5587bbd694e95f646f284fd05a657a53`.
|
|
540
|
+
The private setup statement and local paths remain outside this repository.
|
|
541
|
+
|
|
542
|
+
## Predictable notes and real-source trial: 0.1.2
|
|
543
|
+
|
|
544
|
+
The [RESEARCH-01 guide](researcher-skill.md#research-01-investigate-and-continue)
|
|
545
|
+
now starts with one useful investigation, followed by a human answer and
|
|
546
|
+
continuation. LOAD-01 remains a separate lifecycle check. The skill adds a local
|
|
547
|
+
default of `~/Documents/n8r-surface/research/<source-slug>/<topic>-001.md`, resolves
|
|
548
|
+
and shows the destination before saving, and retains numbered successors.
|
|
549
|
+
User-selected and predecessor folders take precedence. Temporary host storage
|
|
550
|
+
does not count as a persistent user-owned folder.
|
|
551
|
+
|
|
552
|
+
**Before the change:** an independent agent loaded installed 0.1.1 and investigated
|
|
553
|
+
authentication in an actual LibreChat checkout. It produced a useful note, with
|
|
554
|
+
file references, unknown selections and source/runtime limits. The existing skill
|
|
555
|
+
did not define a folder/naming convention: the agent chose its own timestamped
|
|
556
|
+
filename in a Documents research folder. The parent independently reopened the
|
|
557
|
+
note, checked its source manifest against all 15 files (11 source reads, three
|
|
558
|
+
search-only sources and contributor guidance), and spot-checked cited local/LDAP
|
|
559
|
+
routing and federation gates. This is a successful bounded source investigation
|
|
560
|
+
with a storage usability gap, not a failed research claim.
|
|
561
|
+
|
|
562
|
+
Source: upstream LibreChat revision
|
|
563
|
+
`e1dfc10449ff713faffacd60273fddcfe2c0a698`, with one reported tracked change in
|
|
564
|
+
`client/package.json`. The modified file and deployment credentials were not
|
|
565
|
+
read; the dirty state was unchanged after research. Ignored deployment files
|
|
566
|
+
were not inventoried. Private notes and machine paths are not committed here.
|
|
567
|
+
The saved baseline note's SHA-256 was
|
|
568
|
+
`13a7327e1d89024d6b2ed21c28d1a368011da13aa611bdc62de431e48f49ced5`.
|
|
569
|
+
|
|
570
|
+
**Repository installation:** on Codex CLI 0.139.0, registering
|
|
571
|
+
`injectionator/n8r-surface --ref feat/17-researcher-skill` and installing
|
|
572
|
+
`n8r-surface@n8r-surface` both exited 0. The fetched Git snapshot was
|
|
573
|
+
`3eff6fdd710f7670d4511f83233a01444d658408`; the installed list contained exactly
|
|
574
|
+
one enabled 0.1.1 from that Git marketplace. This exercised the future-user route
|
|
575
|
+
without a manual clone or build. Switching back to the local candidate initially
|
|
576
|
+
failed because the same marketplace was registered from a different source.
|
|
577
|
+
Removing that registration, registering the local checkout and installing again
|
|
578
|
+
all succeeded. All ten installed 0.1.2 files matched the source package bytes;
|
|
579
|
+
the manifests agreed on identity, version and presentation. No model API or
|
|
580
|
+
source-service startup was added. Work picker availability is still unverified.
|
|
581
|
+
|
|
582
|
+
**After the change:** a fresh agent read installed 0.1.2 and its two references,
|
|
583
|
+
inspected 12 actual LibreChat source files, resolved the default destination,
|
|
584
|
+
saved `authentication-001.md` and read it back. The user supplied a real intended
|
|
585
|
+
authentication choice during this chat; the note retained it as dated human
|
|
586
|
+
intent, separate from effective deployment state. The investigation was interrupted
|
|
587
|
+
when the user broadened the design discussion; the agent saved the completed
|
|
588
|
+
reads as a partial note without claiming deeper investigation of that choice.
|
|
589
|
+
|
|
590
|
+
A different fresh-context agent received only the installed skill, saved note
|
|
591
|
+
and source location. It recovered the human choice from the note, re-established
|
|
592
|
+
the same source commit/dirty state, re-read `api/server/routes/auth.js:67-80` and
|
|
593
|
+
`api/strategies/localStrategy.js:13-61`, and checked their hashes. It saved/read
|
|
594
|
+
back `authentication-002.md`, preserving the original, identities, evidence,
|
|
595
|
+
uncertainties and unanswered question. The parent independently read both saved
|
|
596
|
+
files, verified their digests and human-choice retention, and checked the 12
|
|
597
|
+
original source hashes plus the successor's two repeated evidence rows.
|
|
598
|
+
|
|
599
|
+
| Saved result | SHA-256 |
|
|
600
|
+
| --- | --- |
|
|
601
|
+
| Initial numbered note | `db1b17df17121406420253915a9ad7ff07390ad01029e05c3e4098b1441542bb` |
|
|
602
|
+
| Fresh-context successor | `c3a1dcb8caedddabb2589b7f57b7a3f2f0c8a9e907e8ca7ccfe273b2f12bef94` |
|
|
603
|
+
|
|
604
|
+
This establishes one separate-agent continuation on the same local filesystem,
|
|
605
|
+
with actual human input. It does not establish Work UI discovery, human acceptance,
|
|
606
|
+
a running authentication integration, cross-host continuation or the standalone CLI.
|
|
607
|
+
|
|
608
|
+
## Branding update: 0.1.1
|
|
609
|
+
|
|
610
|
+
The plugin and skill now display **n8r-surface Researcher**, with the qualified
|
|
611
|
+
invocation `n8r-surface:research`. The renamed package installed successfully
|
|
612
|
+
through `codex plugin add n8r-surface@n8r-surface --json` (exit 0).
|
|
613
|
+
Removing the superseded `n8r-researcher@n8r-surface` package also exited 0; the
|
|
614
|
+
marketplace's installed list then contained exactly one enabled 0.1.1 candidate.
|
|
615
|
+
All ten installed files matched the source package, and the skill frontmatter
|
|
616
|
+
validator passed. The saved research note's digest was unchanged after removal.
|
|
617
|
+
Changed Markdown passed markdownlint-cli2 0.24.0 with the existing MD013/MD041
|
|
618
|
+
exemptions; Lychee 0.24.2 reported 37 local links OK, 0 errors and 11 excluded.
|
|
619
|
+
The staged whitespace check passed.
|
|
620
|
+
|
|
621
|
+
The skill differs only in name, heading, version and its identification in notes;
|
|
622
|
+
the investigation instructions and both references are unchanged. The original
|
|
623
|
+
behavioral trial below applies to 0.1.0 and was not repeated for this rename.
|
|
624
|
+
The old skill digest was
|
|
625
|
+
`8310917d4854f6ff35c1f9fe520b7d70355c868ea6972ebe48975498f16ba1f9`.
|
|
626
|
+
Work UI availability of the new name still needs a fresh-chat check using
|
|
627
|
+
[LOAD-01](researcher-skill.md#load-01-install-invoke-remove-reinstall).
|
|
628
|
+
|
|
629
|
+
## Initial local package behavior: 0.1.0
|
|
630
|
+
|
|
631
|
+
Environment: macOS ARM64, Codex CLI **0.139.0**, Python **3.13.1**.
|
|
632
|
+
The local CLI's supported `plugin marketplace`, `plugin add`, `plugin list` and
|
|
633
|
+
`plugin remove` commands were inspected before use. No credentials were read,
|
|
634
|
+
provider was configured or external model API was called for the package checks.
|
|
635
|
+
|
|
636
|
+
| Interaction | Actual result |
|
|
637
|
+
| --- | --- |
|
|
638
|
+
| Register this repository marketplace | Exit 0; `n8r-surface` registered. |
|
|
639
|
+
| Install the portable root-manifest-only candidate | Exit 1: `missing plugin.json`. The installed client did not accept the newer root manifest alone. |
|
|
640
|
+
| Add the documented Codex compatibility manifest and repeat installation | Exit 0; `n8r-researcher@n8r-surface`, version 0.1.0, installed and enabled. |
|
|
641
|
+
| Remove this exact plugin | Exit 0; its installed list became empty. |
|
|
642
|
+
| Reinstall the same candidate | Exit 0; exactly one installed/enabled 0.1.0 entry. |
|
|
643
|
+
| Read back installation | Every installed package file matched the source package bytes. |
|
|
644
|
+
| Read back saved research across removal/reinstall | The note's SHA-256 remained unchanged. |
|
|
645
|
+
|
|
646
|
+
The bundled skill passed the local skill-creator frontmatter validator. The
|
|
647
|
+
optional Agent Skills `compatibility` field was omitted because that validator
|
|
648
|
+
rejects it even though the open specification permits it; host requirements are
|
|
649
|
+
stated in the instructions instead. These checks establish bounded package and
|
|
650
|
+
local CLI behavior, not universal host compatibility.
|
|
651
|
+
|
|
652
|
+
## Initial behavioral trial: 0.1.0
|
|
653
|
+
|
|
654
|
+
A fresh evaluator received only the two synthetic Lumen source documents and a
|
|
655
|
+
request to research components/configuration, preserve evidence/gaps, ask a useful
|
|
656
|
+
question and save notes. It received no expected answers or previous findings.
|
|
657
|
+
The baseline used no supplied Researcher skill. It retained the main source facts,
|
|
658
|
+
conflict and uncertainty, but did not record exact source hashes or stable
|
|
659
|
+
component labels. This is a narrow baseline observation, not a quality benchmark.
|
|
660
|
+
|
|
661
|
+
A separate fresh evaluator then read the **installed** skill and both references,
|
|
662
|
+
and performed the same task against independent copies of the raw documents.
|
|
663
|
+
It saved Markdown notes and read them back. The developing agent independently
|
|
664
|
+
read the result and checked source identities and required facts:
|
|
665
|
+
|
|
666
|
+
- The note identifies `research-ai-surface 0.1.0`, both sources, line ranges and
|
|
667
|
+
SHA-256 hashes. The hashes match the supplied bytes.
|
|
668
|
+
- It preserves the 10/25 batch-limit conflict, unknown model/version, untested
|
|
669
|
+
Harbor integration and the settings document's scoped absence of an embedded
|
|
670
|
+
archive database.
|
|
671
|
+
- It keeps one archive-service role with separate document/audit connections,
|
|
672
|
+
stable component labels, optional unselected choices and an unanswered question.
|
|
673
|
+
- It labels the result as working notes and does not claim runtime verification,
|
|
674
|
+
contract conformance, a deployment or complete repository coverage.
|
|
675
|
+
|
|
676
|
+
The underlying source digests were:
|
|
677
|
+
|
|
678
|
+
| Source | SHA-256 |
|
|
679
|
+
| --- | --- |
|
|
680
|
+
| `lumen-guide.md` | `98d3374c79c166b37f0debb4ffb5e457eda1385dd7847b042cbad674cac98693` |
|
|
681
|
+
| `lumen-settings.md` | `e94431bce92dc374a3aa58e31c8af78f7dfc61d7b34510ef38552d600d2489b7` |
|
|
682
|
+
|
|
683
|
+
This was a fresh agent evaluation through the current tool harness, explicitly
|
|
684
|
+
loading the installed file. It was **not** a Work-mode picker/discovery test,
|
|
685
|
+
human-answered conversation, fresh-chat continuation or LibreChat investigation.
|
|
686
|
+
The developer did not supply the findings or populate the evaluator's output.
|
|
687
|
+
No synthetic research output is represented as real LibreChat evidence.
|
|
688
|
+
|
|
689
|
+
## Initial repository checks: 0.1.0
|
|
690
|
+
|
|
691
|
+
The skill frontmatter validator passed. The two manifests agree on package
|
|
692
|
+
identity/version and presentation, and installed files and bundled licence texts
|
|
693
|
+
were independently compared with their sources. The saved note's source hashes
|
|
694
|
+
were checked against the original fixtures.
|
|
695
|
+
|
|
696
|
+
The Python fixture/workflow suite passed all 19 tests; `bash -n scripts/flow` and
|
|
697
|
+
`git diff --cached --check` passed. Markdownlint-cli2 0.24.0 checked the 13 changed
|
|
698
|
+
Markdown files with MD013 and MD041 disabled, matching the separate onboarding
|
|
699
|
+
check proposal's style. The bare no-argument lint command cannot discover a
|
|
700
|
+
configuration on this base revision; its repository-wide configuration is not
|
|
701
|
+
merged yet. Lychee 0.24.2 checked local links/anchors across repository Markdown,
|
|
702
|
+
excluding Git/dependency/virtualenv directories: 234 OK, 0 errors, 47 excluded.
|
|
703
|
+
|
|
704
|
+
Citation validation was attempted with cffconvert 2.0.0 but could not run because
|
|
705
|
+
this base has no `CITATION.cff`; that file belongs to separate onboarding work.
|
|
706
|
+
No CLI implementation or npm dependency changes are included in this increment,
|
|
707
|
+
so the paused CLI modifications and their test results are not its evidence.
|
|
708
|
+
|
|
709
|
+
## Remaining Work-mode acceptance
|
|
710
|
+
|
|
711
|
+
The computer-use tool refused access to the ChatGPT desktop application, reporting
|
|
712
|
+
that the app could not be used for safety reasons. No UI interaction was attempted
|
|
713
|
+
after that refusal. The [LOAD-01 procedure](researcher-skill.md#load-01-install-invoke-remove-reinstall)
|
|
714
|
+
is ready for a human rehearsal in ChatGPT desktop / Work. Record the desktop
|
|
715
|
+
version, visible installation/selection state, invocation evidence, saved note,
|
|
716
|
+
removal in a fresh chat and successful reinstall before marking it passed.
|
|
717
|
+
|
|
718
|
+
A successful test must also retain user research outside the plugin cache.
|
|
719
|
+
Uninstallation does not erase an old chat's instructions or content. Do not infer
|
|
720
|
+
unloading from an old chat's behavior, or infer Work support from CLI JSON alone.
|
|
721
|
+
|
|
722
|
+
Further #17 work: human Work-mode acceptance, real live UI/API inspection,
|
|
723
|
+
broader Harbor/LibreChat and reconciliation trials, structured HTML and Surface
|
|
724
|
+
outputs, n8r-labs adaptation in its own repository, and the later installed-Codex
|
|
725
|
+
standalone runner. Both #16 and #17 remain open.
|