@codecell-germany/company-agent-wiki-skill 0.1.3 → 0.1.4

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/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  `company-agent-wiki-skill` is an agent-first local company knowledge toolkit.
12
12
  It ships as a real CLI plus a shared agent skill payload, so an agent can set up a private company wiki, verify the index state, search knowledge, inspect metadata and headings first, and only then load full Markdown when needed.
13
13
 
14
- The shared install layout is meant to work across agent environments that understand the common `~/.agents` skill home, including Codex through its compatibility mirror and other skills.sh-style runtimes such as Claude Code or OpenClaw.
14
+ The shared install layout is meant to work across agent environments that understand the common `~/.agents` skill home, including Codex through a compatibility shim and other skills.sh-style runtimes such as Claude Code or OpenClaw.
15
15
 
16
16
  The product surface is the public CLI:
17
17
 
@@ -46,6 +46,16 @@ The retrieval model is deliberately inspired by Anthropic's Agent Skills model w
46
46
  The difference is the retrieval layer.
47
47
  Here, front matter is not only stored in Markdown files, but also indexed and filterable through a local SQLite search layer.
48
48
 
49
+ ## Architecture visuals
50
+
51
+ ### Agentic knowledge ingestion
52
+
53
+ ![Agentic knowledge ingestion](https://cdn.codecell.de/codecell-intern/company-agent-wiki/data-ingestion.jpg)
54
+
55
+ ### Agent-first knowledge retrieval
56
+
57
+ ![Agent-first knowledge retrieval](https://cdn.codecell.de/codecell-intern/company-agent-wiki/data-retrieval.jpg)
58
+
49
59
  ## Installation
50
60
 
51
61
  ### 1. Install with one command
@@ -61,10 +71,11 @@ That installs:
61
71
  - the shared skill payload into `~/.agents/skills/company-agent-wiki-cli`
62
72
  - the shared runtime into `~/.agents/tools/company-agent-wiki-cli`
63
73
  - the shared CLI shim into `~/.agents/bin/company-agent-wiki-cli`
64
- - the skill payload into `~/.codex/skills/company-agent-wiki-cli`
65
- - the runtime into `~/.codex/tools/company-agent-wiki-cli`
66
74
  - the Codex compatibility shim into `~/.codex/bin/company-agent-wiki-cli`
67
75
 
76
+ The skill payload intentionally exists only once under `~/.agents/skills`.
77
+ Codex gets a CLI compatibility shim, but not a second duplicate skill payload.
78
+
68
79
  ### 2. Verify the CLI
69
80
 
70
81
  ```bash
@@ -205,6 +216,7 @@ status: draft
205
216
  tags:
206
217
  - projekt
207
218
  - alpha
219
+ description: Klare Kurzbeschreibung für Agenten, bevor der Volltext geladen wird.
208
220
  summary: Roadmap und Entscheidungen für Projekt Alpha.
209
221
  project: alpha
210
222
  department: entwicklung
@@ -219,7 +231,7 @@ Recommended authoring order:
219
231
 
220
232
  1. Create the Markdown file inside `knowledge/canonical/` or another registered managed root.
221
233
  2. Use a filename that roughly describes the real content.
222
- 3. Set front matter including `id`, `summary` and the routing fields that matter.
234
+ 3. Set front matter including `id`, `description`, `summary` and the routing fields that matter.
223
235
  4. If the content depends on external sources, document provenance, date and source type.
224
236
  5. Structure the file with clear `#`, `##` and `###` headings.
225
237
  6. Rebuild the index or use an `--auto-rebuild` retrieval path.
package/dist/index.js CHANGED
@@ -7814,6 +7814,7 @@ type: process
7814
7814
  status: active
7815
7815
  tags:
7816
7816
  - example
7817
+ description: Short routing description for agents.
7817
7818
  ---
7818
7819
  \`\`\`
7819
7820
  `;
@@ -8439,6 +8440,8 @@ function normalizeStringArrayValue(value) {
8439
8440
  function buildDocumentMetadataView(row) {
8440
8441
  const frontmatter = JSON.parse(row.frontmatterJson);
8441
8442
  const tags = JSON.parse(row.tagsJson);
8443
+ const description = normalizeStringValue(frontmatter.description) ?? normalizeStringValue(frontmatter.summary);
8444
+ const summary = normalizeStringValue(frontmatter.summary) ?? description;
8442
8445
  return {
8443
8446
  docId: row.docId,
8444
8447
  title: row.title,
@@ -8447,7 +8450,8 @@ function buildDocumentMetadataView(row) {
8447
8450
  docType: row.docType ?? void 0,
8448
8451
  status: row.status ?? void 0,
8449
8452
  tags,
8450
- summary: normalizeStringValue(frontmatter.summary),
8453
+ description,
8454
+ summary,
8451
8455
  project: normalizeStringValue(frontmatter.project),
8452
8456
  department: normalizeStringValue(frontmatter.department),
8453
8457
  owners: normalizeStringArrayValue(frontmatter.owners),
@@ -12611,6 +12615,10 @@ function printMetadata(metadata) {
12611
12615
  }
12612
12616
  if (metadata.systems.length > 0) {
12613
12617
  process.stdout.write(` systems: ${metadata.systems.join(", ")}
12618
+ `);
12619
+ }
12620
+ if (metadata.description) {
12621
+ process.stdout.write(` description: ${metadata.description}
12614
12622
  `);
12615
12623
  }
12616
12624
  if (metadata.summary) {
package/dist/installer.js CHANGED
@@ -3570,6 +3570,7 @@ function installIntoHome(target, home, packageRoot, force = false) {
3570
3570
  writeShim(shimPath, runtimeScript);
3571
3571
  return {
3572
3572
  target,
3573
+ mode: "full",
3573
3574
  home,
3574
3575
  binDir,
3575
3576
  runtimeDir,
@@ -3579,6 +3580,34 @@ function installIntoHome(target, home, packageRoot, force = false) {
3579
3580
  pathHint: (process.env.PATH || "").split(import_node_path.default.delimiter).includes(binDir) ? void 0 : `The shim exists, but ${binDir} is not in PATH. Use "${shimPath}" directly or add ${binDir} to PATH.`
3580
3581
  };
3581
3582
  }
3583
+ function installCompatibilityShim(target, home, runtimeHome, force = false) {
3584
+ const runtimeDir = import_node_path.default.join(runtimeHome, "tools", SKILL_NAME);
3585
+ const runtimeScript = import_node_path.default.join(runtimeDir, "dist", "index.js");
3586
+ if (!import_node_fs2.default.existsSync(runtimeScript)) {
3587
+ throw new Error(`Cannot create compatibility shim because runtime is missing: ${runtimeScript}`);
3588
+ }
3589
+ const binDir = import_node_path.default.join(home, "bin");
3590
+ const shimPath = import_node_path.default.join(binDir, CLI_NAME);
3591
+ const legacyRuntimeDir = import_node_path.default.join(home, "tools", SKILL_NAME);
3592
+ const legacySkillDir = import_node_path.default.join(home, "skills", SKILL_NAME);
3593
+ if (force) {
3594
+ import_node_fs2.default.rmSync(legacyRuntimeDir, { recursive: true, force: true });
3595
+ import_node_fs2.default.rmSync(legacySkillDir, { recursive: true, force: true });
3596
+ import_node_fs2.default.rmSync(shimPath, { force: true });
3597
+ }
3598
+ ensureDir(binDir);
3599
+ writeShim(shimPath, runtimeScript);
3600
+ return {
3601
+ target,
3602
+ mode: "shim-only",
3603
+ home,
3604
+ binDir,
3605
+ runtimeDir,
3606
+ shimPath,
3607
+ shimInPath: (process.env.PATH || "").split(import_node_path.default.delimiter).includes(binDir),
3608
+ pathHint: (process.env.PATH || "").split(import_node_path.default.delimiter).includes(binDir) ? void 0 : `The shim exists, but ${binDir} is not in PATH. Use "${shimPath}" directly or add ${binDir} to PATH.`
3609
+ };
3610
+ }
3582
3611
  function installIntoAgentHomes(options) {
3583
3612
  const packageRoot = resolvePackageRoot(__dirname);
3584
3613
  const agentsHome = options?.agentsHome || getDefaultAgentsHome();
@@ -3594,7 +3623,11 @@ function installIntoAgentHomes(options) {
3594
3623
  if (target === "codex" || target === "all") {
3595
3624
  const shouldSkipCodex = installs.some((entry) => entry.home === codexHome);
3596
3625
  if (!shouldSkipCodex) {
3597
- installs.push(installIntoHome("codex", codexHome, packageRoot, options?.force));
3626
+ if (target === "codex") {
3627
+ installs.push(installIntoHome("codex", codexHome, packageRoot, options?.force));
3628
+ } else {
3629
+ installs.push(installCompatibilityShim("codex", codexHome, agentsHome, options?.force));
3630
+ }
3598
3631
  }
3599
3632
  }
3600
3633
  return {
@@ -3697,10 +3730,23 @@ program2.command("install").option("--agents-home <path>", "Target shared agents
3697
3730
  return;
3698
3731
  }
3699
3732
  for (const install of result.installs) {
3700
- process.stdout.write(`Installed ${install.target} target into ${install.home}
3733
+ process.stdout.write(`Installed ${install.target} target (${install.mode}) into ${install.home}
3701
3734
  `);
3702
3735
  process.stdout.write(`CLI shim: ${install.shimPath}
3703
3736
  `);
3737
+ if (install.mode === "full") {
3738
+ if (install.skillDir) {
3739
+ process.stdout.write(`Skill payload: ${install.skillDir}
3740
+ `);
3741
+ }
3742
+ if (install.runtimeDir) {
3743
+ process.stdout.write(`Runtime: ${install.runtimeDir}
3744
+ `);
3745
+ }
3746
+ } else if (install.runtimeDir) {
3747
+ process.stdout.write(`Runtime source: ${install.runtimeDir}
3748
+ `);
3749
+ }
3704
3750
  if (install.pathHint) {
3705
3751
  process.stdout.write(`warning: ${install.pathHint}
3706
3752
  `);
@@ -46,7 +46,7 @@ The index and manifest are derived artifacts and should stay ignored in the priv
46
46
  8. `search`, `route` and `read` either enforce a fresh index or can explicitly auto-rebuild when `--auto-rebuild` is set.
47
47
  9. Runtime commands may detect the current workspace automatically when the shell is already inside a private workspace.
48
48
  10. A global per-user workspace registry stores known workspace paths and a default workspace so other agents can resolve the knowledge location automatically on macOS, Windows and Linux.
49
- 11. The installer now targets a shared `~/.agents` home as the primary skill/runtime location and also installs a Codex compatibility mirror under `~/.codex`.
49
+ 11. The installer now targets a shared `~/.agents` home as the primary skill/runtime location and adds a Codex compatibility shim under `~/.codex/bin`.
50
50
  12. `serve` exposes the same read-only data through a local web view and now distinguishes `missing`, `stale` and `ok` states with a rebuild action.
51
51
 
52
52
  ## Onboarding Model
@@ -86,6 +86,8 @@ Phase 1 now explicitly supports a two-step retrieval model:
86
86
 
87
87
  This keeps the agent loop lighter and encourages stronger filenames plus front matter without forcing a rigid folder taxonomy.
88
88
 
89
+ The preferred front-matter contract now includes both `description` and `summary`, so agents can inspect a short routing description before deciding whether to load full Markdown content.
90
+
89
91
  ## Global Workspace Discovery
90
92
 
91
93
  Phase 1 now persists workspace discovery outside the private workspace itself:
@@ -30,4 +30,4 @@
30
30
  - The CLI can initialize a private Git remote URL, but it does not validate remote policy or access controls.
31
31
  - The package does not enforce OS-level filesystem permissions; the workspace owner must place the private workspace in a properly protected location.
32
32
  - The global workspace registry is only a discovery layer, not an access-control boundary. Any agent running as the same local user can read the registered workspace path.
33
- - The installer now targets a shared `~/.agents` home first and mirrors into `~/.codex` for compatibility, but it does not manage every agent product's own skill-indexing or refresh logic automatically.
33
+ - The installer now targets a shared `~/.agents` home first and adds a Codex compatibility shim, but it does not manage every agent product's own skill-indexing or refresh logic automatically.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codecell-germany/company-agent-wiki-skill",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Context is king: agent-first local company knowledge workspace with metadata-first retrieval, Markdown as truth, SQLite-indexed front matter, Git-aware verification, and a shared agent skill installer.",
5
5
  "private": false,
6
6
  "license": "MIT",
@@ -21,7 +21,7 @@ This package now targets a shared `~/.agents` home first so the same published p
21
21
  - The private workspace may be the current dedicated local folder; it just must not be the public skill/CLI repo.
22
22
  - The human should provide the workspace path at least once and, if desired, the private Git remote URL. After setup or manual registration, the CLI stores the workspace path in a global per-user registry so later agents can resolve it automatically.
23
23
  - Runtime discovery matters. Before relying on the CLI, verify which path is actually available.
24
- - The primary shared install target is `~/.agents`. Codex additionally gets a compatibility mirror under `~/.codex`.
24
+ - The primary shared install target is `~/.agents`. Codex should only need the compatibility shim under `~/.codex/bin`, not a duplicate second skill payload.
25
25
  - The preferred one-command installer path is `npx -y -p @codecell-germany/company-agent-wiki-skill company-agent-wiki-skill install --force`. This only works after the npm package is really published.
26
26
  - If the binary is not already installed in PATH, use these fallbacks in this order:
27
27
 
@@ -157,6 +157,7 @@ status: draft
157
157
  tags:
158
158
  - projekt
159
159
  - alpha
160
+ description: Klare Kurzbeschreibung für Agenten, bevor der Volltext geladen wird.
160
161
  summary: Roadmap und Entscheidungen für Projekt Alpha.
161
162
  project: alpha
162
163
  department: entwicklung
@@ -173,7 +174,7 @@ Empfohlener Ablauf:
173
174
 
174
175
  1. Datei unter `knowledge/canonical/` oder einem anderen registrierten Managed Root anlegen.
175
176
  2. Dateiname so wählen, dass er den Inhalt grob repräsentiert, etwa `projekt-alpha-roadmap.md`.
176
- 3. Front Matter inklusive `id`, `summary` und passenden Routing-Feldern setzen.
177
+ 3. Front Matter inklusive `id`, `description`, `summary` und passenden Routing-Feldern setzen.
177
178
  4. Wenn der Inhalt auf externer Recherche basiert, Provenienz ergänzen:
178
179
  - Quellenstand oder Prüfdokumentation im Dokument
179
180
  - Datum der Prüfung
@@ -217,6 +218,7 @@ tags:
217
218
  - crm
218
219
  - partner
219
220
  - netzwerk
221
+ description: Kurzbeschreibung der Beziehung und ihrer Relevanz für Agenten.
220
222
  summary: Rolle, Status und Relevanz des Partners im CodeCell-Netzwerk.
221
223
  department: vertrieb
222
224
  owners:
@@ -34,6 +34,7 @@ status: draft
34
34
  tags:
35
35
  - projekt
36
36
  - alpha
37
+ description: Klare Kurzbeschreibung für Agenten, bevor der Volltext geladen wird.
37
38
  summary: Roadmap und Entscheidungen für Projekt Alpha.
38
39
  project: alpha
39
40
  department: entwicklung
@@ -52,6 +53,7 @@ systems:
52
53
  - `type`: z. B. `project`, `process`, `policy`, `guide`, `note`
53
54
  - `status`: z. B. `draft`, `active`, `archived`
54
55
  - `tags`: freie Schlagwörter
56
+ - `description`: kurze Pflichtbeschreibung für Agenten-Routing und Metadata-First-Reads
55
57
  - `summary`: kurze 1-Zeilen-Zusammenfassung für Agenten-Routing
56
58
  - `project`: Projektkennung oder Projektslug
57
59
  - `department`: Abteilung oder Verantwortungsbereich
@@ -65,6 +67,7 @@ Wenn Wissen aus Webrecherche, Nutzerangaben, E-Mails oder anderen externen Quell
65
67
 
66
68
  Empfohlen:
67
69
 
70
+ - `description` im Front Matter als sofort sichtbare Kurzbeschreibung
68
71
  - `summary` im Front Matter für die Kurzbeschreibung
69
72
  - im Dokument ein Abschnitt `## Quellenstand`
70
73
  - Prüfdaten oder Prüfdatum
@@ -92,7 +95,7 @@ Beispiel:
92
95
 
93
96
  1. Dokument im passenden Managed Root anlegen, meist unter `knowledge/canonical/`.
94
97
  2. Dateinamen so wählen, dass er `title` und Inhalt grob repräsentiert.
95
- 3. Front Matter setzen, idealerweise inklusive `id`.
98
+ 3. Front Matter setzen, idealerweise inklusive `id`, `description` und `summary`.
96
99
  4. Bei externem Wissen Provenienz ergänzen.
97
100
  5. Abschnitte schreiben.
98
101
  6. `company-agent-wiki-cli index rebuild --workspace /absolute/path --json` ausführen.
@@ -147,6 +150,7 @@ tags:
147
150
  - crm
148
151
  - partner
149
152
  - netzwerk
153
+ description: Kurzbeschreibung der Beziehung und ihrer Relevanz für Agenten.
150
154
  summary: Rolle, Status und Relevanz des Partners im CodeCell-Netzwerk.
151
155
  department: vertrieb
152
156
  owners:
@@ -1,7 +1,7 @@
1
1
  # Overview
2
2
 
3
3
  `company-agent-wiki-cli` is the public interface for a private, local company knowledge workspace.
4
- The published package now installs into a shared `~/.agents` home first and mirrors into `~/.codex` for Codex compatibility.
4
+ The published package now installs into a shared `~/.agents` home first and adds a Codex compatibility shim under `~/.codex/bin`.
5
5
 
6
6
  ## Source of Truth
7
7