@theihtisham/agent-shadow-brain 7.22.0 → 7.22.1
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/CHANGELOG.md +7 -1
- package/README.md +7 -3
- package/dist/brain/auto-update.js +1 -1
- package/dist/brain/brain-portability.js +1 -1
- package/dist/brain/client-integrations.js +1 -1
- package/dist/brain/context-efficiency.d.ts.map +1 -1
- package/dist/brain/mcp-presence.js +2 -2
- package/dist/brain/mcp-server.js +5 -5
- package/dist/brain/native-codex.js +1 -1
- package/dist/brain/orchestrator.js +1 -1
- package/dist/brain/project-hub-pdf-worker.js +57 -57
- package/dist/brain/project-hub-store.js +11 -11
- package/dist/cli.js +1 -1
- package/dist/dashboard/brain-hub-agent-dock.js +252 -252
- package/dist/dashboard/brain-hub-controls.js +61 -61
- package/dist/dashboard/brain-hub-exchanges.js +80 -80
- package/dist/dashboard/brain-hub-graph.js +336 -336
- package/dist/dashboard/brain-hub-html.js +78 -78
- package/dist/dashboard/brain-hub-live.js +149 -149
- package/dist/dashboard/brain-hub-managed-skills.js +18 -18
- package/dist/dashboard/brain-hub-native.js +42 -42
- package/dist/dashboard/live-workspace-html.js +1 -1
- package/dist/dashboard/project-feedback-html.js +211 -211
- package/dist/dashboard/project-kit-html.js +353 -353
- package/dist/dashboard/server.js +1 -1
- package/dist/dashboard/v6-dashboard-html.js +4261 -4261
- package/dist/dashboard/workspace-api.js +1 -1
- package/dist/dashboard/workspace-html.js +2534 -2534
- package/dist/dashboard/workspace-status.js +1 -1
- package/dist/project-cli.js +1 -1
- package/docs/BRAND_ASSETS.md +36 -36
- package/docs/COMPARISON.md +22 -22
- package/docs/COMPONENTS.md +66 -66
- package/docs/CONTEXT_LAB.md +79 -79
- package/docs/INTEGRATIONS.md +69 -69
- package/docs/LEARNING.md +45 -45
- package/docs/PROJECT_KIT.md +97 -97
- package/docs/SHARING.md +13 -13
- package/docs/SHOWCASE.md +87 -87
- package/docs/STATS.md +21 -21
- package/docs/TROUBLESHOOTING.md +42 -42
- package/docs/UPGRADE_PLAN_v7.0.0.md +203 -203
- package/docs/WORKFLOW_INTEGRATION.md +125 -125
- package/docs/evaluation/CONTEXT_EVALUATION_v7.1.4.json +1818 -1818
- package/docs/evaluation/CONTEXT_EVALUATION_v7.1.4.md +36 -36
- package/docs/launch/COMPONENT_MAP_v7.1.4.md +122 -122
- package/docs/launch/PROJECT_KIT_PLAN_v7.1.4.md +110 -110
- package/docs/launch/PROJECT_LEARNING_PLAN_v7.1.4.md +63 -63
- package/docs/launch/RELEASE_ACCEPTANCE_v7.22.0.md +48 -48
- package/docs/launch/RELEASE_CHECKLIST_v7.0.0.md +24 -24
- package/docs/launch/RELEASE_NOTES_v7.0.0.md +44 -44
- package/docs/launch/RELEASE_NOTES_v7.1.0.md +32 -32
- package/docs/launch/RELEASE_NOTES_v7.1.3.md +40 -40
- package/docs/launch/RELEASE_NOTES_v7.1.4.md +30 -30
- package/docs/launch/RELEASE_NOTES_v7.2.0.md +24 -24
- package/docs/launch/RELEASE_NOTES_v7.22.0.md +53 -53
- package/docs/launch/RELEASE_NOTES_v7.22.1.md +11 -0
- package/docs/launch/RESEARCH_AND_PLAN_v7.1.4.md +255 -255
- package/docs/launch/RESEARCH_AND_PLAN_v7.22.0.md +672 -672
- package/package.json +7 -3
- package/skills/shadow-debug/SKILL.md +16 -16
- package/skills/shadow-implement/SKILL.md +16 -16
- package/skills/shadow-release/SKILL.md +16 -16
- package/skills/shadow-research/SKILL.md +14 -14
- package/skills/shadow-review/SKILL.md +14 -14
- package/skills/shadow-workflow/SKILL.md +39 -39
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
# Agent Shadow Brain 7.1.4 context evaluation
|
|
2
|
-
|
|
3
|
-
Paired runs used the same author-generated corpus and options for each case. Each profile assembled context from the compiled package after its isolated JSON store had loaded.
|
|
4
|
-
|
|
5
|
-
| Profile | Cases passed | Context recall@5 | Context MRR@5 | Scope leaks | Budget violations | Median assembly |
|
|
6
|
-
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
|
|
7
|
-
| legacy | 6 / 14 | 0.679 | 0.731 | 0 / 1 | 0 | 0.225 ms |
|
|
8
|
-
| adaptive | 14 / 14 | 1.000 | 1.000 | 0 / 1 | 0 | 0.756 ms |
|
|
9
|
-
|
|
10
|
-
| Fixture | Records | Legacy checks | Adaptive checks |
|
|
11
|
-
| --- | ---: | --- | --- |
|
|
12
|
-
| Exact lexical control | 2 | Pass | Pass |
|
|
13
|
-
| No lexical evidence | 1 | Pass | Pass |
|
|
14
|
-
| Exact Java match and metadata boundary | 3 | excludes forbidden IDs, ranks expected record first | Pass |
|
|
15
|
-
| Late identifier remains visible in the excerpt | 1 | shows expected passage in the excerpt | Pass |
|
|
16
|
-
| Exact duplicates leave room for a distinct checksum lesson | 205 | includes relevant IDs, preserves reference and original memory ID | Pass |
|
|
17
|
-
| Whole camelCase query matches snake_case | 2 | includes relevant IDs, ranks expected record first | Pass |
|
|
18
|
-
| Whole snake_case query matches PascalCase | 2 | includes relevant IDs, ranks expected record first | Pass |
|
|
19
|
-
| Relative query matches a recorded Windows source reference | 2 | excludes forbidden IDs | Pass |
|
|
20
|
-
| Unicode text and code punctuation | 2 | Pass | Pass |
|
|
21
|
-
| Cross-project setting alone preserves project scope | 2 | Pass | Pass |
|
|
22
|
-
| Both cross-project gates permit labeled origins | 2 | Pass | Pass |
|
|
23
|
-
| Archived, contested, and superseded states remain excluded | 4 | Pass | Pass |
|
|
24
|
-
| Recorded links stop at one hop and preserve contradiction caution | 6 | includes relevant IDs | Pass |
|
|
25
|
-
| Tight Unicode and code budget still shows the matched identifier | 1 | includes relevant IDs, shows expected passage in the excerpt | Pass |
|
|
26
|
-
|
|
27
|
-
Runtime used v24.15.0 on win32/x64. Each case has one warm-store assembly measurement per profile. The first profile alternates by case.
|
|
28
|
-
|
|
29
|
-
Recall and reciprocal rank use the first 5 selected context entries and explicit relevant IDs. The no-evidence case is evaluated as abstention. Candidate explanations and the new estimate method are checked only where the adaptive profile provides them.
|
|
30
|
-
|
|
31
|
-
- The author-generated fixtures target named behaviors and do not measure model answer quality or competitor performance.
|
|
32
|
-
- Token counts are profile-specific estimates and may differ from a receiving model’s tokenizer.
|
|
33
|
-
- Timing covers context assembly after loading each store and excludes initialization, packaging, UI, and model calls.
|
|
34
|
-
- Lexical variants and recorded links do not provide general semantic paraphrase retrieval or factual verification.
|
|
35
|
-
|
|
36
|
-
Run npm run build followed by node tools/evaluate-context.mjs to reproduce the paired JSON results.
|
|
1
|
+
# Agent Shadow Brain 7.1.4 context evaluation
|
|
2
|
+
|
|
3
|
+
Paired runs used the same author-generated corpus and options for each case. Each profile assembled context from the compiled package after its isolated JSON store had loaded.
|
|
4
|
+
|
|
5
|
+
| Profile | Cases passed | Context recall@5 | Context MRR@5 | Scope leaks | Budget violations | Median assembly |
|
|
6
|
+
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
|
|
7
|
+
| legacy | 6 / 14 | 0.679 | 0.731 | 0 / 1 | 0 | 0.225 ms |
|
|
8
|
+
| adaptive | 14 / 14 | 1.000 | 1.000 | 0 / 1 | 0 | 0.756 ms |
|
|
9
|
+
|
|
10
|
+
| Fixture | Records | Legacy checks | Adaptive checks |
|
|
11
|
+
| --- | ---: | --- | --- |
|
|
12
|
+
| Exact lexical control | 2 | Pass | Pass |
|
|
13
|
+
| No lexical evidence | 1 | Pass | Pass |
|
|
14
|
+
| Exact Java match and metadata boundary | 3 | excludes forbidden IDs, ranks expected record first | Pass |
|
|
15
|
+
| Late identifier remains visible in the excerpt | 1 | shows expected passage in the excerpt | Pass |
|
|
16
|
+
| Exact duplicates leave room for a distinct checksum lesson | 205 | includes relevant IDs, preserves reference and original memory ID | Pass |
|
|
17
|
+
| Whole camelCase query matches snake_case | 2 | includes relevant IDs, ranks expected record first | Pass |
|
|
18
|
+
| Whole snake_case query matches PascalCase | 2 | includes relevant IDs, ranks expected record first | Pass |
|
|
19
|
+
| Relative query matches a recorded Windows source reference | 2 | excludes forbidden IDs | Pass |
|
|
20
|
+
| Unicode text and code punctuation | 2 | Pass | Pass |
|
|
21
|
+
| Cross-project setting alone preserves project scope | 2 | Pass | Pass |
|
|
22
|
+
| Both cross-project gates permit labeled origins | 2 | Pass | Pass |
|
|
23
|
+
| Archived, contested, and superseded states remain excluded | 4 | Pass | Pass |
|
|
24
|
+
| Recorded links stop at one hop and preserve contradiction caution | 6 | includes relevant IDs | Pass |
|
|
25
|
+
| Tight Unicode and code budget still shows the matched identifier | 1 | includes relevant IDs, shows expected passage in the excerpt | Pass |
|
|
26
|
+
|
|
27
|
+
Runtime used v24.15.0 on win32/x64. Each case has one warm-store assembly measurement per profile. The first profile alternates by case.
|
|
28
|
+
|
|
29
|
+
Recall and reciprocal rank use the first 5 selected context entries and explicit relevant IDs. The no-evidence case is evaluated as abstention. Candidate explanations and the new estimate method are checked only where the adaptive profile provides them.
|
|
30
|
+
|
|
31
|
+
- The author-generated fixtures target named behaviors and do not measure model answer quality or competitor performance.
|
|
32
|
+
- Token counts are profile-specific estimates and may differ from a receiving model’s tokenizer.
|
|
33
|
+
- Timing covers context assembly after loading each store and excludes initialization, packaging, UI, and model calls.
|
|
34
|
+
- Lexical variants and recorded links do not provide general semantic paraphrase retrieval or factual verification.
|
|
35
|
+
|
|
36
|
+
Run npm run build followed by node tools/evaluate-context.mjs to reproduce the paired JSON results.
|
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
# Component map for 7.1.4
|
|
2
|
-
|
|
3
|
-
Prepared 2026-11-12 from the repository's source. This map explains the selected release architecture and inventories retained code. **A source file's presence is not a claim that its feature is enabled, integrated into the default workflow, or independently verified.** Final verification belongs in the release evidence report.
|
|
4
|
-
|
|
5
|
-
## The everyday workflow
|
|
6
|
-
|
|
7
|
-
```mermaid
|
|
8
|
-
flowchart LR
|
|
9
|
-
A[Agent or user] --> B[MCP, CLI, or local workspace]
|
|
10
|
-
B --> C[Explicit project and task]
|
|
11
|
-
C --> D[Memory snapshot]
|
|
12
|
-
E[Reviews and recorded relations] --> F[Eligible memories]
|
|
13
|
-
D --> F
|
|
14
|
-
F --> G[Legacy or adaptive retrieval]
|
|
15
|
-
G --> H[Bounded context and reasons]
|
|
16
|
-
H --> I[Inspect and compare]
|
|
17
|
-
I --> J[Copy context or selected handoff prompt]
|
|
18
|
-
J --> A
|
|
19
|
-
I --> K[Explicit revision-checked review]
|
|
20
|
-
K --> E
|
|
21
|
-
B --> L[Measured calls or reported phases]
|
|
22
|
-
L --> M[Bounded activity journal]
|
|
23
|
-
M --> N[Live view and recorded replay]
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
The arrows describe data flow. They do not imply that every agent is connected, every tool call is captured, or copied context has been consumed by a model.
|
|
27
|
-
|
|
28
|
-
## Main components and responsibilities
|
|
29
|
-
|
|
30
|
-
| Component | Purpose | Boundary |
|
|
31
|
-
| --- | --- | --- |
|
|
32
|
-
| Global memory store | Persist memory records, project/agent identities, storage health, and recorded use | Schema version 1; atomic writes and bounded store policies |
|
|
33
|
-
| Annotation store | Persist reviews, recorded relation types, revisions, and audit history | Explicit review operations; does not verify truth |
|
|
34
|
-
| Feature settings | Persist five actual runtime controls | Validated fields and revisions; separate from provider configuration |
|
|
35
|
-
| Legacy recall | Keep established substring/ranking behavior available | Ranking is heuristic; legacy compatibility is intentional |
|
|
36
|
-
| Adaptive retrieval | Improve technical matching, duplicate handling, excerpts, and bounded recorded-link expansion | Explicit profile; no embeddings or provider call required |
|
|
37
|
-
| Context assembler | Apply scope, curation, selection, exclusions, rendering, and output bounds | Stored text is reference material; sources are not opened |
|
|
38
|
-
| Memory health | Present scoped counts and actionable review signals | Missing sources, age, and unreviewed status are not truth judgments |
|
|
39
|
-
| Subconscious briefing | Supply existing session-start context behavior | Automatic-briefing control applies; profile differences must be documented |
|
|
40
|
-
| Workspace API | Validate requests and expose shared results to the local UI | Same scope/review semantics as CLI and MCP; inspections remain read-only |
|
|
41
|
-
| Workspace UI | Inspect memory, graph relations, attention queue, context, and integrations | Shows recorded evidence and actual results; does not infer connections |
|
|
42
|
-
| MCP stdio | Expose memory/context/workflow tools, resources, and selected prompts | Client capability determines which surfaces are available |
|
|
43
|
-
| CLI | Run context, curation, activity, workflow, skill, and diagnostic operations | Explicit flags select new behavior; old commands remain |
|
|
44
|
-
| Workflow skills | Give clients focused procedures for selecting, implementing, debugging, reviewing, researching, and releasing work | Installing files does not prove host discovery or execution |
|
|
45
|
-
| Client recipes/diagnostics | Produce configuration snippets and inspect managed project skill-file presence | No personal profiles, credentials, or session data are read |
|
|
46
|
-
| Activity reporting | Record measured MCP calls and explicitly reported phases/spans | Records bounded metadata, not model thoughts or a complete host trace |
|
|
47
|
-
| Durable activity journal | Persist the latest bounded events with sequence and journal identity | Readers can detect gaps and restarts |
|
|
48
|
-
| Live portal | Show sessions, events, networks, timing, and recorded playback | A replay is historical; measured and reported events remain distinct |
|
|
49
|
-
| Isolated workspace demo | Serve the real UI with synthetic records and scripted local calls through `demo workspace` | Separate temporary store; no client discovery or personal provider configuration |
|
|
50
|
-
| Project Kit (added scope) | Inspect a chosen project's stack evidence, save explicit local knowledge, and preview/apply a requirement-specific skill | Persistent project store and project skill roots; no automatic source ingestion, global installation, or overwrite of user edits; implementation acceptance pending |
|
|
51
|
-
| Project feedback (added scope) | Persist attributed task outcomes and make bounded, reversible adjustments to relevant adaptive candidates | Project-only sidecar; reported evidence, no model training, truth verification, automatic curation, or global influence; implementation acceptance pending |
|
|
52
|
-
| Package/library exports | Supply CLI binaries and public TypeScript/JavaScript entry points | Verify the packed artifact in a fresh consumer |
|
|
53
|
-
|
|
54
|
-
## Persistent project workflow
|
|
55
|
-
|
|
56
|
-
`project workspace` creates an independent memory service pinned to the selected directory. `project-memory.ts` supplies canonical store paths and explicit knowledge writes. `project-kit-inspection.ts` extracts bounded observed markers; `project-kit-paths.ts` checks roots, links, and bounded reads; `project-kit.ts` produces requirement-specific previews and protects applied files with ownership receipts. `project-feedback.ts` owns local outcome persistence and relevance adjustments. The portal, CLI, and MCP use these shared services.
|
|
57
|
-
|
|
58
|
-
Knowledge and outcomes persist under `.shadow-brain` in the selected project. Generated skill files use the selected client's project skill directory. The local portal must not consume another store's process-wide activity feed. Its MCP recipe includes the exact database and project identity. This persistent workflow is separate from the disposable `demo workspace` tour.
|
|
59
|
-
|
|
60
|
-
The project learning flag is a local feedback-store control, separate from the five global feature controls below. Its meaning is whether reported outcomes influence adaptive retrieval; switching it off retains the reports. See the [Project Kit plan](PROJECT_KIT_PLAN_v7.1.4.md) and [learning plan](PROJECT_LEARNING_PLAN_v7.1.4.md) for acceptance gates.
|
|
61
|
-
|
|
62
|
-
## Controls and their effects
|
|
63
|
-
|
|
64
|
-
| Control | Default | Effect |
|
|
65
|
-
| --- | --- | --- |
|
|
66
|
-
| Context assembly | On | Allows the shared context pack path; disabled requests return before recall |
|
|
67
|
-
| Cross-project context | Off | Permits broader scope only together with an explicit request |
|
|
68
|
-
| Automatic briefing | On | Allows the existing session-start briefing path |
|
|
69
|
-
| Live dashboard activity | On | Allows activity to be shown/refreshed in the dashboard |
|
|
70
|
-
| Record agent activity | On | Allows new bounded activity-journal records |
|
|
71
|
-
|
|
72
|
-
Visibility and recording are different. Disabling visibility does not erase recorded events. Per-request retrieval profile and relation expansion are request options, not extra persisted global switches.
|
|
73
|
-
|
|
74
|
-
## What a connection proves
|
|
75
|
-
|
|
76
|
-
| Observation | What it establishes |
|
|
77
|
-
| --- | --- |
|
|
78
|
-
| Client appears in capability list | A documented recipe or supported layout exists |
|
|
79
|
-
| Skill file is present | The managed project file exists at the inspected path |
|
|
80
|
-
| MCP handshake and tool list succeed | That process can speak the advertised protocol |
|
|
81
|
-
| Host reports a phase | The host explicitly submitted that metadata |
|
|
82
|
-
| Server measures a tool call | The local server observed that call and its timing |
|
|
83
|
-
| User sees a completed host interaction | That particular client workflow operated end to end |
|
|
84
|
-
|
|
85
|
-
Do not collapse these observations into an unqualified green “connected” badge. Prompts, resources, and tools have different support across clients.
|
|
86
|
-
|
|
87
|
-
## Retained advanced code
|
|
88
|
-
|
|
89
|
-
The repository also exports or retains analyzers, memory experiments, team/swarm concepts, graph algorithms, portability, dashboards, speech/visual experiments, and legacy continuity paths. These remain available according to their existing entry points and configuration. Their names are not evidence of general intelligence, autonomous learning, formal correctness, or complete integration with adaptive context.
|
|
90
|
-
|
|
91
|
-
The `src/index.ts` export surface and CLI/server entry points are the authoritative starting points for checking accessibility. The source inventory below makes every module discoverable without expanding the README into a feature catalogue. Refer to focused tests and release evidence before making a stronger capability claim.
|
|
92
|
-
|
|
93
|
-
## Source inventory
|
|
94
|
-
|
|
95
|
-
This inventory is generated from source filenames. It classifies location, not verification status. New 7.1.4 files should be included again when the final package is prepared.
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
### src
|
|
99
|
-
|
|
100
|
-
- [project-cli.ts](../../src/project-cli.ts)
|
|
1
|
+
# Component map for 7.1.4
|
|
2
|
+
|
|
3
|
+
Prepared 2026-11-12 from the repository's source. This map explains the selected release architecture and inventories retained code. **A source file's presence is not a claim that its feature is enabled, integrated into the default workflow, or independently verified.** Final verification belongs in the release evidence report.
|
|
4
|
+
|
|
5
|
+
## The everyday workflow
|
|
6
|
+
|
|
7
|
+
```mermaid
|
|
8
|
+
flowchart LR
|
|
9
|
+
A[Agent or user] --> B[MCP, CLI, or local workspace]
|
|
10
|
+
B --> C[Explicit project and task]
|
|
11
|
+
C --> D[Memory snapshot]
|
|
12
|
+
E[Reviews and recorded relations] --> F[Eligible memories]
|
|
13
|
+
D --> F
|
|
14
|
+
F --> G[Legacy or adaptive retrieval]
|
|
15
|
+
G --> H[Bounded context and reasons]
|
|
16
|
+
H --> I[Inspect and compare]
|
|
17
|
+
I --> J[Copy context or selected handoff prompt]
|
|
18
|
+
J --> A
|
|
19
|
+
I --> K[Explicit revision-checked review]
|
|
20
|
+
K --> E
|
|
21
|
+
B --> L[Measured calls or reported phases]
|
|
22
|
+
L --> M[Bounded activity journal]
|
|
23
|
+
M --> N[Live view and recorded replay]
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The arrows describe data flow. They do not imply that every agent is connected, every tool call is captured, or copied context has been consumed by a model.
|
|
27
|
+
|
|
28
|
+
## Main components and responsibilities
|
|
29
|
+
|
|
30
|
+
| Component | Purpose | Boundary |
|
|
31
|
+
| --- | --- | --- |
|
|
32
|
+
| Global memory store | Persist memory records, project/agent identities, storage health, and recorded use | Schema version 1; atomic writes and bounded store policies |
|
|
33
|
+
| Annotation store | Persist reviews, recorded relation types, revisions, and audit history | Explicit review operations; does not verify truth |
|
|
34
|
+
| Feature settings | Persist five actual runtime controls | Validated fields and revisions; separate from provider configuration |
|
|
35
|
+
| Legacy recall | Keep established substring/ranking behavior available | Ranking is heuristic; legacy compatibility is intentional |
|
|
36
|
+
| Adaptive retrieval | Improve technical matching, duplicate handling, excerpts, and bounded recorded-link expansion | Explicit profile; no embeddings or provider call required |
|
|
37
|
+
| Context assembler | Apply scope, curation, selection, exclusions, rendering, and output bounds | Stored text is reference material; sources are not opened |
|
|
38
|
+
| Memory health | Present scoped counts and actionable review signals | Missing sources, age, and unreviewed status are not truth judgments |
|
|
39
|
+
| Subconscious briefing | Supply existing session-start context behavior | Automatic-briefing control applies; profile differences must be documented |
|
|
40
|
+
| Workspace API | Validate requests and expose shared results to the local UI | Same scope/review semantics as CLI and MCP; inspections remain read-only |
|
|
41
|
+
| Workspace UI | Inspect memory, graph relations, attention queue, context, and integrations | Shows recorded evidence and actual results; does not infer connections |
|
|
42
|
+
| MCP stdio | Expose memory/context/workflow tools, resources, and selected prompts | Client capability determines which surfaces are available |
|
|
43
|
+
| CLI | Run context, curation, activity, workflow, skill, and diagnostic operations | Explicit flags select new behavior; old commands remain |
|
|
44
|
+
| Workflow skills | Give clients focused procedures for selecting, implementing, debugging, reviewing, researching, and releasing work | Installing files does not prove host discovery or execution |
|
|
45
|
+
| Client recipes/diagnostics | Produce configuration snippets and inspect managed project skill-file presence | No personal profiles, credentials, or session data are read |
|
|
46
|
+
| Activity reporting | Record measured MCP calls and explicitly reported phases/spans | Records bounded metadata, not model thoughts or a complete host trace |
|
|
47
|
+
| Durable activity journal | Persist the latest bounded events with sequence and journal identity | Readers can detect gaps and restarts |
|
|
48
|
+
| Live portal | Show sessions, events, networks, timing, and recorded playback | A replay is historical; measured and reported events remain distinct |
|
|
49
|
+
| Isolated workspace demo | Serve the real UI with synthetic records and scripted local calls through `demo workspace` | Separate temporary store; no client discovery or personal provider configuration |
|
|
50
|
+
| Project Kit (added scope) | Inspect a chosen project's stack evidence, save explicit local knowledge, and preview/apply a requirement-specific skill | Persistent project store and project skill roots; no automatic source ingestion, global installation, or overwrite of user edits; implementation acceptance pending |
|
|
51
|
+
| Project feedback (added scope) | Persist attributed task outcomes and make bounded, reversible adjustments to relevant adaptive candidates | Project-only sidecar; reported evidence, no model training, truth verification, automatic curation, or global influence; implementation acceptance pending |
|
|
52
|
+
| Package/library exports | Supply CLI binaries and public TypeScript/JavaScript entry points | Verify the packed artifact in a fresh consumer |
|
|
53
|
+
|
|
54
|
+
## Persistent project workflow
|
|
55
|
+
|
|
56
|
+
`project workspace` creates an independent memory service pinned to the selected directory. `project-memory.ts` supplies canonical store paths and explicit knowledge writes. `project-kit-inspection.ts` extracts bounded observed markers; `project-kit-paths.ts` checks roots, links, and bounded reads; `project-kit.ts` produces requirement-specific previews and protects applied files with ownership receipts. `project-feedback.ts` owns local outcome persistence and relevance adjustments. The portal, CLI, and MCP use these shared services.
|
|
57
|
+
|
|
58
|
+
Knowledge and outcomes persist under `.shadow-brain` in the selected project. Generated skill files use the selected client's project skill directory. The local portal must not consume another store's process-wide activity feed. Its MCP recipe includes the exact database and project identity. This persistent workflow is separate from the disposable `demo workspace` tour.
|
|
59
|
+
|
|
60
|
+
The project learning flag is a local feedback-store control, separate from the five global feature controls below. Its meaning is whether reported outcomes influence adaptive retrieval; switching it off retains the reports. See the [Project Kit plan](PROJECT_KIT_PLAN_v7.1.4.md) and [learning plan](PROJECT_LEARNING_PLAN_v7.1.4.md) for acceptance gates.
|
|
61
|
+
|
|
62
|
+
## Controls and their effects
|
|
63
|
+
|
|
64
|
+
| Control | Default | Effect |
|
|
65
|
+
| --- | --- | --- |
|
|
66
|
+
| Context assembly | On | Allows the shared context pack path; disabled requests return before recall |
|
|
67
|
+
| Cross-project context | Off | Permits broader scope only together with an explicit request |
|
|
68
|
+
| Automatic briefing | On | Allows the existing session-start briefing path |
|
|
69
|
+
| Live dashboard activity | On | Allows activity to be shown/refreshed in the dashboard |
|
|
70
|
+
| Record agent activity | On | Allows new bounded activity-journal records |
|
|
71
|
+
|
|
72
|
+
Visibility and recording are different. Disabling visibility does not erase recorded events. Per-request retrieval profile and relation expansion are request options, not extra persisted global switches.
|
|
73
|
+
|
|
74
|
+
## What a connection proves
|
|
75
|
+
|
|
76
|
+
| Observation | What it establishes |
|
|
77
|
+
| --- | --- |
|
|
78
|
+
| Client appears in capability list | A documented recipe or supported layout exists |
|
|
79
|
+
| Skill file is present | The managed project file exists at the inspected path |
|
|
80
|
+
| MCP handshake and tool list succeed | That process can speak the advertised protocol |
|
|
81
|
+
| Host reports a phase | The host explicitly submitted that metadata |
|
|
82
|
+
| Server measures a tool call | The local server observed that call and its timing |
|
|
83
|
+
| User sees a completed host interaction | That particular client workflow operated end to end |
|
|
84
|
+
|
|
85
|
+
Do not collapse these observations into an unqualified green “connected” badge. Prompts, resources, and tools have different support across clients.
|
|
86
|
+
|
|
87
|
+
## Retained advanced code
|
|
88
|
+
|
|
89
|
+
The repository also exports or retains analyzers, memory experiments, team/swarm concepts, graph algorithms, portability, dashboards, speech/visual experiments, and legacy continuity paths. These remain available according to their existing entry points and configuration. Their names are not evidence of general intelligence, autonomous learning, formal correctness, or complete integration with adaptive context.
|
|
90
|
+
|
|
91
|
+
The `src/index.ts` export surface and CLI/server entry points are the authoritative starting points for checking accessibility. The source inventory below makes every module discoverable without expanding the README into a feature catalogue. Refer to focused tests and release evidence before making a stronger capability claim.
|
|
92
|
+
|
|
93
|
+
## Source inventory
|
|
94
|
+
|
|
95
|
+
This inventory is generated from source filenames. It classifies location, not verification status. New 7.1.4 files should be included again when the final package is prepared.
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
### src
|
|
99
|
+
|
|
100
|
+
- [project-cli.ts](../../src/project-cli.ts)
|
|
101
101
|
|
|
102
102
|
- [activity-cli.ts](../../src/activity-cli.ts)
|
|
103
103
|
- [cli.ts](../../src/cli.ts)
|
|
@@ -107,14 +107,14 @@ This inventory is generated from source filenames. It classifies location, not v
|
|
|
107
107
|
- [integration-cli.ts](../../src/integration-cli.ts)
|
|
108
108
|
- [types.ts](../../src/types.ts)
|
|
109
109
|
- [workflow-cli.ts](../../src/workflow-cli.ts)
|
|
110
|
-
|
|
111
|
-
### src/brain
|
|
112
|
-
|
|
113
|
-
- [project-feedback.ts](../../src/brain/project-feedback.ts)
|
|
114
|
-
- [project-kit.ts](../../src/brain/project-kit.ts)
|
|
115
|
-
- [project-kit-inspection.ts](../../src/brain/project-kit-inspection.ts)
|
|
116
|
-
- [project-kit-paths.ts](../../src/brain/project-kit-paths.ts)
|
|
117
|
-
- [project-memory.ts](../../src/brain/project-memory.ts)
|
|
110
|
+
|
|
111
|
+
### src/brain
|
|
112
|
+
|
|
113
|
+
- [project-feedback.ts](../../src/brain/project-feedback.ts)
|
|
114
|
+
- [project-kit.ts](../../src/brain/project-kit.ts)
|
|
115
|
+
- [project-kit-inspection.ts](../../src/brain/project-kit-inspection.ts)
|
|
116
|
+
- [project-kit-paths.ts](../../src/brain/project-kit-paths.ts)
|
|
117
|
+
- [project-memory.ts](../../src/brain/project-memory.ts)
|
|
118
118
|
|
|
119
119
|
- [accessibility-checker.ts](../../src/brain/accessibility-checker.ts)
|
|
120
120
|
- [activity-journal.ts](../../src/brain/activity-journal.ts)
|
|
@@ -268,21 +268,21 @@ This inventory is generated from source filenames. It classifies location, not v
|
|
|
268
268
|
- [voice-mode.ts](../../src/brain/voice-mode.ts)
|
|
269
269
|
- [vuln-scanner.ts](../../src/brain/vuln-scanner.ts)
|
|
270
270
|
- [workflow-skills.ts](../../src/brain/workflow-skills.ts)
|
|
271
|
-
|
|
272
|
-
### src/dashboard
|
|
273
|
-
|
|
274
|
-
- [project-feedback-html.ts](../../src/dashboard/project-feedback-html.ts)
|
|
275
|
-
- [project-kit-html.ts](../../src/dashboard/project-kit-html.ts)
|
|
276
|
-
- [project-workspace.ts](../../src/dashboard/project-workspace.ts)
|
|
277
|
-
|
|
278
|
-
- [demo-workspace.ts](../../src/dashboard/demo-workspace.ts)
|
|
271
|
+
|
|
272
|
+
### src/dashboard
|
|
273
|
+
|
|
274
|
+
- [project-feedback-html.ts](../../src/dashboard/project-feedback-html.ts)
|
|
275
|
+
- [project-kit-html.ts](../../src/dashboard/project-kit-html.ts)
|
|
276
|
+
- [project-workspace.ts](../../src/dashboard/project-workspace.ts)
|
|
277
|
+
|
|
278
|
+
- [demo-workspace.ts](../../src/dashboard/demo-workspace.ts)
|
|
279
279
|
- [live-workspace-html.ts](../../src/dashboard/live-workspace-html.ts)
|
|
280
280
|
- [server.ts](../../src/dashboard/server.ts)
|
|
281
281
|
- [v6-dashboard-html.ts](../../src/dashboard/v6-dashboard-html.ts)
|
|
282
282
|
- [workspace-api.ts](../../src/dashboard/workspace-api.ts)
|
|
283
283
|
- [workspace-html.ts](../../src/dashboard/workspace-html.ts)
|
|
284
|
-
|
|
285
|
-
### src/adapters
|
|
284
|
+
|
|
285
|
+
### src/adapters
|
|
286
286
|
|
|
287
287
|
- [aider.ts](../../src/adapters/aider.ts)
|
|
288
288
|
- [base-adapter.ts](../../src/adapters/base-adapter.ts)
|
|
@@ -296,12 +296,12 @@ This inventory is generated from source filenames. It classifies location, not v
|
|
|
296
296
|
- [opencode.ts](../../src/adapters/opencode.ts)
|
|
297
297
|
- [roo-code.ts](../../src/adapters/roo-code.ts)
|
|
298
298
|
- [windsurf.ts](../../src/adapters/windsurf.ts)
|
|
299
|
-
|
|
300
|
-
### src/watchers
|
|
299
|
+
|
|
300
|
+
### src/watchers
|
|
301
301
|
|
|
302
302
|
- [file-watcher.ts](../../src/watchers/file-watcher.ts)
|
|
303
303
|
- [git-watcher.ts](../../src/watchers/git-watcher.ts)
|
|
304
|
-
|
|
305
|
-
### src/ui
|
|
304
|
+
|
|
305
|
+
### src/ui
|
|
306
306
|
|
|
307
307
|
- [dashboard.tsx](../../src/ui/dashboard.tsx)
|
|
@@ -1,110 +1,110 @@
|
|
|
1
|
-
# Project Kit: local knowledge and requirement-specific skills
|
|
2
|
-
|
|
3
|
-
Added to the 7.1.4 scope on 2026-11-12 following the user's request. Status: implementation in progress. This extends the [research and acceptance plan](RESEARCH_AND_PLAN_v7.1.4.md); it does not change the earlier compatibility requirements.
|
|
4
|
-
|
|
5
|
-
## Intended behavior
|
|
6
|
-
|
|
7
|
-
A user opens a chosen project, sees what Shadow Brain can observe about its stack, records knowledge they want an agent to remember, and creates a focused skill for that project's requirement. The knowledge, skill, and settings stay inside that project. The same local memory becomes available in Context Lab and through the project's generated MCP launch recipe.
|
|
8
|
-
|
|
9
|
-
The workflow is **select project → inspect observed stack → record explicit knowledge → describe requirement → preview skill → apply locally → use local context**. Workspace detection and skill drafting are deterministic and do not require a model provider. “Observed stack” means bounded manifest and directory evidence; it does not mean the program has semantically understood all source code or validated the user's requirement.
|
|
10
|
-
|
|
11
|
-
## Storage and entry point
|
|
12
|
-
|
|
13
|
-
Use an additive project-workspace entry point, proposed as `shadow-brain project workspace <directory>`. It serves the existing workspace UI with explicit dependencies pointing at `<project>/.shadow-brain/project-memory.json`. Annotations, settings, activity, and the generated-skill receipt remain in that project's `.shadow-brain` directory. The final CLI spelling must be verified and reflected in the quickstart.
|
|
14
|
-
|
|
15
|
-
The existing global-backed `dash` and context defaults remain compatible. Do not silently merge or migrate global memories into a project store. An independent explicit `GlobalBrain` instance may be used for the project service; the existing singleton behavior stays intact. A project workspace shuts down its server and flushes its own writes, but **does not delete the persistent project directory or knowledge**. Temporary demo cleanup is a separate code path.
|
|
16
|
-
|
|
17
|
-
Project recipes must pass the actual local database path with `--db`; setting the MCP process's working directory alone does not select a local store. A new MCP process launched from the recipe must recall a newly saved project note. Generic process-wide BrainBus activity must not leak events from another store into a project-local workspace; use its local journal or an explicit store-specific activity dependency.
|
|
18
|
-
|
|
19
|
-
## Project inspection
|
|
20
|
-
|
|
21
|
-
The scanner accepts one existing, explicit project root. It rejects drive roots, home/global agent configuration roots, linked ancestors, and invalid paths. All reads stay beneath that root. Inspection is read-only and returns structured evidence and limitations.
|
|
22
|
-
|
|
23
|
-
Initial bounds:
|
|
24
|
-
|
|
25
|
-
- A deterministic relative directory view with a fixed entry count and depth, initially 500 entries and depth 3.
|
|
26
|
-
- A fixed manifest allowlist with regular single-link files, initially at most 64 KiB per inspected manifest.
|
|
27
|
-
- Exclude dependency caches, version-control internals, generated outputs, environment files, authentication/configuration stores, and linked paths before recursion or content reads.
|
|
28
|
-
- Extract known dependency names, known script names, manifest types, and package-manager evidence. Do not expose dependency URL/version values, script bodies, arbitrary metadata, or source-file contents.
|
|
29
|
-
- Read no browser data, provider settings, credential stores, or model configuration. Fetch no remote source and execute no discovered script.
|
|
30
|
-
|
|
31
|
-
A package manifest can support an observation such as “React dependency declared.” It does not establish that every page uses React or that a command succeeds. Ambiguous package managers, missing manifests, unsupported formats, and scan truncation remain visible. A generic project can still receive a requirement-specific skill, with unknown stack details left explicit.
|
|
32
|
-
|
|
33
|
-
Suggested profile shape:
|
|
34
|
-
|
|
35
|
-
```ts
|
|
36
|
-
interface ProjectProfile {
|
|
37
|
-
schemaVersion: 1;
|
|
38
|
-
projectId: string;
|
|
39
|
-
projectName: string;
|
|
40
|
-
root: string;
|
|
41
|
-
observedAt: string;
|
|
42
|
-
stack: string[];
|
|
43
|
-
packageManagers: string[];
|
|
44
|
-
evidence: Array<{ path: string; kind: string; signals: string[] }>;
|
|
45
|
-
checks: Array<{ label: string; command: string; source: string }>;
|
|
46
|
-
coverage: { entries: number; limit: number; truncated: boolean };
|
|
47
|
-
warnings: string[];
|
|
48
|
-
}
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
The worker may refine field names before callers are committed. All interfaces should consume one shared implementation rather than duplicate stack inference.
|
|
52
|
-
|
|
53
|
-
## Explicit knowledge
|
|
54
|
-
|
|
55
|
-
Accept bounded user text, a title, an optional category, and an optional recorded reference. A useful initial content bound is 8,000 characters and a source-reference bound is 500. Save the title and supplied content with the canonical project identity in the project's memory store; acknowledge success only after persistence succeeds.
|
|
56
|
-
|
|
57
|
-
Record metadata such as `origin: project-kit-user` and `inputKind: explicit-knowledge`. Only populate source references when the user supplies an actual reference. Do not manufacture a citation that inflates source-coverage counts. The user-provided knowledge is not independently verified, and source targets are not fetched.
|
|
58
|
-
|
|
59
|
-
New knowledge must be immediately inspectable in Memories, eligible for scoped Context Lab retrieval, persistent after restart, and visible to the project's MCP recipe. Do not add knowledge automatically from environment files, personal profiles, conversation history, or unrelated projects.
|
|
60
|
-
|
|
61
|
-
## Generated skills
|
|
62
|
-
|
|
63
|
-
The service takes an explicit requirement, the observed profile, the chosen client target, an optional name, and optional explicit knowledge. It generates one concise, self-contained `SKILL.md` unless a concrete need justifies additional resources. The required `name` and `description` frontmatter is valid and safely encoded. The description names a narrow task and project context so unrelated tasks do not select it.
|
|
64
|
-
|
|
65
|
-
The body includes the actual requirement, relevant user knowledge, observed stack evidence, local implementation considerations, and available validation guidance. It must not fabricate commands or evidence, install dependencies, run code, claim tests passed, grant extra permissions, or override the user's current project instructions. Generated guidance should be proportionate to the task rather than turning every request into an elaborate process.
|
|
66
|
-
|
|
67
|
-
Reuse existing client targets and project skill locations:
|
|
68
|
-
|
|
69
|
-
| Target | Project-local destination |
|
|
70
|
-
| --- | --- |
|
|
71
|
-
| `codex` | `.agents/skills/<name>/SKILL.md` |
|
|
72
|
-
| `claude-code` | `.claude/skills/<name>/SKILL.md` |
|
|
73
|
-
| `opencode` | `.opencode/skills/<name>/SKILL.md` |
|
|
74
|
-
| `deepseek-harness` | `.dsh/skills/<name>/SKILL.md` |
|
|
75
|
-
| `portable` | `.agents/skills/<name>/SKILL.md` |
|
|
76
|
-
|
|
77
|
-
Names contain lowercase letters, numbers, and hyphens and stay under 64 characters. A generated default name should be stable for the project and requirement. No generated skill is installed in a home/global skills directory. Do not silently edit `AGENTS.md`, client profiles, provider settings, or authentication files. Skill-file presence is not proof that a host loaded it.
|
|
78
|
-
|
|
79
|
-
## Preview, apply, and ownership
|
|
80
|
-
|
|
81
|
-
Preview returns the exact output path and content, observed evidence, conflicts, and a stable plan hash. It creates no directories or files. The UI makes these inspectable before the user applies the local skill.
|
|
82
|
-
|
|
83
|
-
The hash binds the selected root, target, requirement, explicit knowledge, generated bytes, relevant observed profile, and existing-file state. Exclude observation timestamps and other volatile display fields. Recompute the plan before apply; do not trust a client-supplied arbitrary file path or content object.
|
|
84
|
-
|
|
85
|
-
Use a dedicated project-local ownership receipt, separate from the bundled workflow installer. Apply verifies root/destination ancestors, rejects links and unexpected file types, and writes only planned generated paths. An unowned existing skill conflicts. An owned skill changed by the user conflicts. An unchanged owned skill can be updated or reported unchanged. Stale plans fail without overwriting recent work. Use bounded locking and atomic replacement; report any partial-write failure accurately.
|
|
86
|
-
|
|
87
|
-
Suggested public service operations:
|
|
88
|
-
|
|
89
|
-
```ts
|
|
90
|
-
inspectProject(root)
|
|
91
|
-
planProjectSkill(root, { requirement, target, name?, knowledge? })
|
|
92
|
-
applyProjectSkill(root, request, expectedPlanHash)
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
HTTP routes operate on the server's pinned root; they do not accept arbitrary filesystem roots from the browser. Knowledge input and skill apply are explicit write actions, separately labeled from inspection and preview. The coordinating agent owns the final route and CLI names.
|
|
96
|
-
|
|
97
|
-
## Acceptance gates
|
|
98
|
-
|
|
99
|
-
1. Inspect JavaScript/TypeScript, PHP or another supported stack, ambiguous manifests, and an unknown project without inventing missing facts. Verify deterministic output apart from observation time.
|
|
100
|
-
2. Prove directory/manifest bounds, excluded paths, symlink/hardlink rejection, and refusal of home/global roots using synthetic fixtures. Secret-like values in disallowed fields must never appear in returned profiles or generated skills.
|
|
101
|
-
3. Verify requirement and explicit knowledge materially change the generated skill. Verify valid frontmatter, bounded text, focused description, correct client root, and no unrelated file changes.
|
|
102
|
-
4. Preview produces no filesystem writes. Repeated apply is idempotent. Edited/unowned files and stale plan hashes conflict. Apply never writes outside the selected root.
|
|
103
|
-
5. Save explicit knowledge, retrieve it through Context Lab, restart the project workspace, and retrieve it again. Launch a fresh MCP process using the generated local-store recipe and verify the same committed memory.
|
|
104
|
-
6. Place a foreign sentinel in another synthetic store and process-wide activity source. Verify the project workspace's memories, context, health, activity, and skill generation do not expose it.
|
|
105
|
-
7. Complete the visible inspect→knowledge→skill preview→apply→context workflow on desktop and mobile. Verify error, conflict, empty, and unknown-stack states.
|
|
106
|
-
8. Run inherited regression tests and exact packed-artifact CLI/server tests. Preserve the older global dashboard, bundled skill installer, demo action, and memory schema.
|
|
107
|
-
|
|
108
|
-
The final README needs a project-local onboarding example and an actual screenshot of this workflow. It must distinguish persistent project knowledge from the disposable synthetic demo and explicitly describe the limits of deterministic workspace detection.
|
|
109
|
-
|
|
110
|
-
The later [project learning addendum](PROJECT_LEARNING_PLAN_v7.1.4.md) adds attributed memory outcomes and reversible task-relevant retrieval influence to this same local workspace. Its acceptance gates are additional; a successful skill installation alone does not verify the learning loop.
|
|
1
|
+
# Project Kit: local knowledge and requirement-specific skills
|
|
2
|
+
|
|
3
|
+
Added to the 7.1.4 scope on 2026-11-12 following the user's request. Status: implementation in progress. This extends the [research and acceptance plan](RESEARCH_AND_PLAN_v7.1.4.md); it does not change the earlier compatibility requirements.
|
|
4
|
+
|
|
5
|
+
## Intended behavior
|
|
6
|
+
|
|
7
|
+
A user opens a chosen project, sees what Shadow Brain can observe about its stack, records knowledge they want an agent to remember, and creates a focused skill for that project's requirement. The knowledge, skill, and settings stay inside that project. The same local memory becomes available in Context Lab and through the project's generated MCP launch recipe.
|
|
8
|
+
|
|
9
|
+
The workflow is **select project → inspect observed stack → record explicit knowledge → describe requirement → preview skill → apply locally → use local context**. Workspace detection and skill drafting are deterministic and do not require a model provider. “Observed stack” means bounded manifest and directory evidence; it does not mean the program has semantically understood all source code or validated the user's requirement.
|
|
10
|
+
|
|
11
|
+
## Storage and entry point
|
|
12
|
+
|
|
13
|
+
Use an additive project-workspace entry point, proposed as `shadow-brain project workspace <directory>`. It serves the existing workspace UI with explicit dependencies pointing at `<project>/.shadow-brain/project-memory.json`. Annotations, settings, activity, and the generated-skill receipt remain in that project's `.shadow-brain` directory. The final CLI spelling must be verified and reflected in the quickstart.
|
|
14
|
+
|
|
15
|
+
The existing global-backed `dash` and context defaults remain compatible. Do not silently merge or migrate global memories into a project store. An independent explicit `GlobalBrain` instance may be used for the project service; the existing singleton behavior stays intact. A project workspace shuts down its server and flushes its own writes, but **does not delete the persistent project directory or knowledge**. Temporary demo cleanup is a separate code path.
|
|
16
|
+
|
|
17
|
+
Project recipes must pass the actual local database path with `--db`; setting the MCP process's working directory alone does not select a local store. A new MCP process launched from the recipe must recall a newly saved project note. Generic process-wide BrainBus activity must not leak events from another store into a project-local workspace; use its local journal or an explicit store-specific activity dependency.
|
|
18
|
+
|
|
19
|
+
## Project inspection
|
|
20
|
+
|
|
21
|
+
The scanner accepts one existing, explicit project root. It rejects drive roots, home/global agent configuration roots, linked ancestors, and invalid paths. All reads stay beneath that root. Inspection is read-only and returns structured evidence and limitations.
|
|
22
|
+
|
|
23
|
+
Initial bounds:
|
|
24
|
+
|
|
25
|
+
- A deterministic relative directory view with a fixed entry count and depth, initially 500 entries and depth 3.
|
|
26
|
+
- A fixed manifest allowlist with regular single-link files, initially at most 64 KiB per inspected manifest.
|
|
27
|
+
- Exclude dependency caches, version-control internals, generated outputs, environment files, authentication/configuration stores, and linked paths before recursion or content reads.
|
|
28
|
+
- Extract known dependency names, known script names, manifest types, and package-manager evidence. Do not expose dependency URL/version values, script bodies, arbitrary metadata, or source-file contents.
|
|
29
|
+
- Read no browser data, provider settings, credential stores, or model configuration. Fetch no remote source and execute no discovered script.
|
|
30
|
+
|
|
31
|
+
A package manifest can support an observation such as “React dependency declared.” It does not establish that every page uses React or that a command succeeds. Ambiguous package managers, missing manifests, unsupported formats, and scan truncation remain visible. A generic project can still receive a requirement-specific skill, with unknown stack details left explicit.
|
|
32
|
+
|
|
33
|
+
Suggested profile shape:
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
interface ProjectProfile {
|
|
37
|
+
schemaVersion: 1;
|
|
38
|
+
projectId: string;
|
|
39
|
+
projectName: string;
|
|
40
|
+
root: string;
|
|
41
|
+
observedAt: string;
|
|
42
|
+
stack: string[];
|
|
43
|
+
packageManagers: string[];
|
|
44
|
+
evidence: Array<{ path: string; kind: string; signals: string[] }>;
|
|
45
|
+
checks: Array<{ label: string; command: string; source: string }>;
|
|
46
|
+
coverage: { entries: number; limit: number; truncated: boolean };
|
|
47
|
+
warnings: string[];
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
The worker may refine field names before callers are committed. All interfaces should consume one shared implementation rather than duplicate stack inference.
|
|
52
|
+
|
|
53
|
+
## Explicit knowledge
|
|
54
|
+
|
|
55
|
+
Accept bounded user text, a title, an optional category, and an optional recorded reference. A useful initial content bound is 8,000 characters and a source-reference bound is 500. Save the title and supplied content with the canonical project identity in the project's memory store; acknowledge success only after persistence succeeds.
|
|
56
|
+
|
|
57
|
+
Record metadata such as `origin: project-kit-user` and `inputKind: explicit-knowledge`. Only populate source references when the user supplies an actual reference. Do not manufacture a citation that inflates source-coverage counts. The user-provided knowledge is not independently verified, and source targets are not fetched.
|
|
58
|
+
|
|
59
|
+
New knowledge must be immediately inspectable in Memories, eligible for scoped Context Lab retrieval, persistent after restart, and visible to the project's MCP recipe. Do not add knowledge automatically from environment files, personal profiles, conversation history, or unrelated projects.
|
|
60
|
+
|
|
61
|
+
## Generated skills
|
|
62
|
+
|
|
63
|
+
The service takes an explicit requirement, the observed profile, the chosen client target, an optional name, and optional explicit knowledge. It generates one concise, self-contained `SKILL.md` unless a concrete need justifies additional resources. The required `name` and `description` frontmatter is valid and safely encoded. The description names a narrow task and project context so unrelated tasks do not select it.
|
|
64
|
+
|
|
65
|
+
The body includes the actual requirement, relevant user knowledge, observed stack evidence, local implementation considerations, and available validation guidance. It must not fabricate commands or evidence, install dependencies, run code, claim tests passed, grant extra permissions, or override the user's current project instructions. Generated guidance should be proportionate to the task rather than turning every request into an elaborate process.
|
|
66
|
+
|
|
67
|
+
Reuse existing client targets and project skill locations:
|
|
68
|
+
|
|
69
|
+
| Target | Project-local destination |
|
|
70
|
+
| --- | --- |
|
|
71
|
+
| `codex` | `.agents/skills/<name>/SKILL.md` |
|
|
72
|
+
| `claude-code` | `.claude/skills/<name>/SKILL.md` |
|
|
73
|
+
| `opencode` | `.opencode/skills/<name>/SKILL.md` |
|
|
74
|
+
| `deepseek-harness` | `.dsh/skills/<name>/SKILL.md` |
|
|
75
|
+
| `portable` | `.agents/skills/<name>/SKILL.md` |
|
|
76
|
+
|
|
77
|
+
Names contain lowercase letters, numbers, and hyphens and stay under 64 characters. A generated default name should be stable for the project and requirement. No generated skill is installed in a home/global skills directory. Do not silently edit `AGENTS.md`, client profiles, provider settings, or authentication files. Skill-file presence is not proof that a host loaded it.
|
|
78
|
+
|
|
79
|
+
## Preview, apply, and ownership
|
|
80
|
+
|
|
81
|
+
Preview returns the exact output path and content, observed evidence, conflicts, and a stable plan hash. It creates no directories or files. The UI makes these inspectable before the user applies the local skill.
|
|
82
|
+
|
|
83
|
+
The hash binds the selected root, target, requirement, explicit knowledge, generated bytes, relevant observed profile, and existing-file state. Exclude observation timestamps and other volatile display fields. Recompute the plan before apply; do not trust a client-supplied arbitrary file path or content object.
|
|
84
|
+
|
|
85
|
+
Use a dedicated project-local ownership receipt, separate from the bundled workflow installer. Apply verifies root/destination ancestors, rejects links and unexpected file types, and writes only planned generated paths. An unowned existing skill conflicts. An owned skill changed by the user conflicts. An unchanged owned skill can be updated or reported unchanged. Stale plans fail without overwriting recent work. Use bounded locking and atomic replacement; report any partial-write failure accurately.
|
|
86
|
+
|
|
87
|
+
Suggested public service operations:
|
|
88
|
+
|
|
89
|
+
```ts
|
|
90
|
+
inspectProject(root)
|
|
91
|
+
planProjectSkill(root, { requirement, target, name?, knowledge? })
|
|
92
|
+
applyProjectSkill(root, request, expectedPlanHash)
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
HTTP routes operate on the server's pinned root; they do not accept arbitrary filesystem roots from the browser. Knowledge input and skill apply are explicit write actions, separately labeled from inspection and preview. The coordinating agent owns the final route and CLI names.
|
|
96
|
+
|
|
97
|
+
## Acceptance gates
|
|
98
|
+
|
|
99
|
+
1. Inspect JavaScript/TypeScript, PHP or another supported stack, ambiguous manifests, and an unknown project without inventing missing facts. Verify deterministic output apart from observation time.
|
|
100
|
+
2. Prove directory/manifest bounds, excluded paths, symlink/hardlink rejection, and refusal of home/global roots using synthetic fixtures. Secret-like values in disallowed fields must never appear in returned profiles or generated skills.
|
|
101
|
+
3. Verify requirement and explicit knowledge materially change the generated skill. Verify valid frontmatter, bounded text, focused description, correct client root, and no unrelated file changes.
|
|
102
|
+
4. Preview produces no filesystem writes. Repeated apply is idempotent. Edited/unowned files and stale plan hashes conflict. Apply never writes outside the selected root.
|
|
103
|
+
5. Save explicit knowledge, retrieve it through Context Lab, restart the project workspace, and retrieve it again. Launch a fresh MCP process using the generated local-store recipe and verify the same committed memory.
|
|
104
|
+
6. Place a foreign sentinel in another synthetic store and process-wide activity source. Verify the project workspace's memories, context, health, activity, and skill generation do not expose it.
|
|
105
|
+
7. Complete the visible inspect→knowledge→skill preview→apply→context workflow on desktop and mobile. Verify error, conflict, empty, and unknown-stack states.
|
|
106
|
+
8. Run inherited regression tests and exact packed-artifact CLI/server tests. Preserve the older global dashboard, bundled skill installer, demo action, and memory schema.
|
|
107
|
+
|
|
108
|
+
The final README needs a project-local onboarding example and an actual screenshot of this workflow. It must distinguish persistent project knowledge from the disposable synthetic demo and explicitly describe the limits of deterministic workspace detection.
|
|
109
|
+
|
|
110
|
+
The later [project learning addendum](PROJECT_LEARNING_PLAN_v7.1.4.md) adds attributed memory outcomes and reversible task-relevant retrieval influence to this same local workspace. Its acceptance gates are additional; a successful skill installation alone does not verify the learning loop.
|