@event4u/agent-config 3.1.1 → 3.3.0

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.
Files changed (96) hide show
  1. package/.agent-src/commands/agent-status.md +1 -1
  2. package/.agent-src/commands/analytics/prune.md +78 -0
  3. package/.agent-src/commands/analytics/show.md +107 -0
  4. package/.agent-src/commands/analytics.md +64 -0
  5. package/.agent-src/commands/knowledge/forget.md +104 -0
  6. package/.agent-src/commands/knowledge/ingest.md +122 -0
  7. package/.agent-src/commands/knowledge/list.md +102 -0
  8. package/.agent-src/commands/knowledge.md +75 -0
  9. package/.agent-src/scripts/update_roadmap_progress.py +1 -1
  10. package/.agent-src/skills/compress-memory/SKILL.md +1 -1
  11. package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  12. package/.claude-plugin/marketplace.json +8 -1
  13. package/AGENTS.md +5 -4
  14. package/CHANGELOG.md +54 -222
  15. package/README.md +12 -2
  16. package/dist/discovery/deprecation-report.md +1 -1
  17. package/dist/discovery/discovery-manifest.json +164 -10
  18. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  19. package/dist/discovery/discovery-manifest.summary.md +3 -3
  20. package/dist/discovery/orphan-report.md +1 -1
  21. package/dist/discovery/packs.json +12 -5
  22. package/dist/discovery/trust-report.md +2 -2
  23. package/dist/discovery/workspaces.json +11 -4
  24. package/dist/mcp/mcp-cloudflare-catalogue.json +2 -0
  25. package/dist/mcp/registry-manifest.json +5 -3
  26. package/docs/architecture.md +1 -1
  27. package/docs/archive/CHANGELOG-pre-3.2.0.md +268 -0
  28. package/docs/benchmarks.md +4 -4
  29. package/docs/catalog.md +9 -2
  30. package/docs/contracts/CHANGELOG-conventions.md +20 -1
  31. package/docs/contracts/adr-mcp-runtime.md +1 -1
  32. package/docs/contracts/at-rest-encryption.md +146 -0
  33. package/docs/contracts/benchmark-corpus-spec.md +3 -3
  34. package/docs/contracts/benchmark-report-schema.md +5 -5
  35. package/docs/contracts/caveman-telemetry.md +4 -4
  36. package/docs/contracts/compression-default-kill-criterion.md +5 -5
  37. package/docs/contracts/cost-enforcement.md +1 -1
  38. package/docs/contracts/daily-workspace.md +137 -0
  39. package/docs/contracts/explain-modes.md +146 -0
  40. package/docs/contracts/host-agent-protocol.md +88 -0
  41. package/docs/contracts/local-analytics.md +148 -0
  42. package/docs/contracts/local-knowledge-ingestion.md +96 -0
  43. package/docs/contracts/mcp-beta-criteria.md +1 -1
  44. package/docs/contracts/mcp-cloud-scope.md +4 -4
  45. package/docs/contracts/mcp-registry-manifest.schema.json +1 -1
  46. package/docs/contracts/mcp-tool-inventory.md +1 -1
  47. package/docs/contracts/mcp-tool-stub-envelope.md +1 -1
  48. package/docs/contracts/measurement-baseline.md +6 -6
  49. package/docs/contracts/role-experience.md +121 -0
  50. package/docs/contracts/workspace-documents.md +140 -0
  51. package/docs/decisions/ADR-022-daily-workspace-decomposition.md +140 -0
  52. package/docs/decisions/ADR-023-host-agent-protocol.md +129 -0
  53. package/docs/decisions/ADR-024-workspace-v0-feature-floor.md +126 -0
  54. package/docs/decisions/ADR-025-workspace-chrome.md +119 -0
  55. package/docs/decisions/ADR-026-explain-mode-translation.md +117 -0
  56. package/docs/decisions/ADR-027-changelog-machine-vs-manual.md +129 -0
  57. package/docs/decisions/ADR-028-root-layout.md +147 -0
  58. package/docs/decisions/ADR-029-multi-workspace-deferred.md +122 -0
  59. package/docs/decisions/INDEX.md +8 -0
  60. package/docs/deploy/small-team-recipe.md +148 -0
  61. package/docs/deploy/team-deployment-posture.md +91 -0
  62. package/docs/getting-started-by-role.md +27 -0
  63. package/docs/getting-started.md +1 -1
  64. package/docs/guides/local-analytics.md +125 -0
  65. package/docs/guides/local-knowledge.md +127 -0
  66. package/docs/mcp-server.md +1 -1
  67. package/docs/parity/bench-ruflo.json +3 -3
  68. package/docs/parity/ruflo.md +1 -1
  69. package/docs/setup/mcp-client-config.md +1 -1
  70. package/docs/setup/mcp-cloud-endpoints.md +1 -1
  71. package/docs/setup/mcp-cloud-setup.md +2 -2
  72. package/docs/setup/mcp-r2-bootstrap.md +1 -1
  73. package/package.json +4 -2
  74. package/scripts/__pycache__/validate_frontmatter.cpython-312.pyc +0 -0
  75. package/scripts/_lib/__pycache__/__init__.cpython-312.pyc +0 -0
  76. package/scripts/_lib/__pycache__/agent_src.cpython-312.pyc +0 -0
  77. package/scripts/_lib/bench_caveman.py +2 -2
  78. package/scripts/_lib/bench_caveman_report.py +1 -1
  79. package/scripts/_lib/bench_cost.py +2 -2
  80. package/scripts/_lib/bench_report.py +2 -2
  81. package/scripts/_lib/changelog_eras.py +330 -0
  82. package/scripts/audit_mcp_tools.py +1 -1
  83. package/scripts/bench_baseline_ready.py +3 -3
  84. package/scripts/bench_compress_memory.py +4 -4
  85. package/scripts/bench_drift_check.py +2 -2
  86. package/scripts/bench_per_tool.py +2 -2
  87. package/scripts/bench_run.py +4 -4
  88. package/scripts/build_mcp_registry_manifest.py +2 -2
  89. package/scripts/mcp_server/__init__.py +1 -1
  90. package/scripts/mcp_server/catalog.py +1 -1
  91. package/scripts/mcp_server/consumer_tool_catalog.json +1 -1
  92. package/scripts/mcp_server/tools.py +1 -1
  93. package/scripts/memory_lookup.py +78 -1
  94. package/scripts/pack_mcp_content.py +6 -6
  95. package/scripts/release.py +93 -3
  96. package/scripts/skill_trigger_eval.py +2 -2
@@ -0,0 +1,147 @@
1
+ ---
2
+ adr: 028
3
+ status: accepted
4
+ date: 2026-05-25
5
+ decision: root-layout
6
+ supersedes: —
7
+ superseded_by: —
8
+ phase: v3.x · root-layout-cleanup Phase 1
9
+ type: structural
10
+ review_date: 2027-05-25
11
+ ---
12
+
13
+ # ADR-028 — Root layout — targeted prune now, multi-workspace deferred behind four audits
14
+
15
+ ## Status
16
+
17
+ **Accepted** · 2026-05-25. Encodes the AI Council verdict from
18
+ [`root-cleanup-organizing-principle-2026-05-25.synthesis.md`](../../agents/runtime/council/sessions/root-cleanup-organizing-principle-2026-05-25.synthesis.md)
19
+ and opens
20
+ [`road-to-root-layout-cleanup.md`](../../agents/roadmaps/archive/road-to-root-layout-cleanup.md) (archived; complete).
21
+ Time-boxed: review on **2027-05-25** or earlier if any trigger below fires.
22
+
23
+ ## Context
24
+
25
+ A request to move "everything not needed at root into `./src/`" failed
26
+ the reality check on three counts:
27
+
28
+ 1. **`./src/` is occupied** — the TypeScript application (CLI · Server · UI · shared) per
29
+ [`ADR-012`](ADR-012-typescript-cli-shell.md) / [`ADR-016`](ADR-016-installer-architecture.md).
30
+ Moving general tooling into `./src/` collides with the app boundary.
31
+ 2. **`router.json` is not at root** — lives under `./dist/`, governed by
32
+ [`ADR-019`](ADR-019-router-json-dist-location.md). Out of scope.
33
+ 3. **`setup.sh` is the curl entry point** — referenced by external installers
34
+ (`bash <(curl …setup.sh)`). Discovery surface, immovable.
35
+
36
+ A council session (2 members, $0.13 actual) reframed the problem:
37
+
38
+ > "Root noise" is not a *discoverability* problem (GitHub paginates
39
+ > anyway, npm consumers never see it). It is a *maintainability*
40
+ > problem — "where do new internal tools belong?"
41
+
42
+ With that reframe, the cheap-and-safe move (Option 1 — targeted prune)
43
+ becomes obvious, and the deep restructure (multi-workspace) drops to a
44
+ conditional follow-up gated by evidence the package does not yet have.
45
+
46
+ ### Consumer-contract surface check (Phase 1 scope)
47
+
48
+ Re-audit of `bench/`, `evals/`, `workers/`, `user-types/` against the
49
+ installer / projector / CI:
50
+
51
+ | Dir | `scripts/install.py` | `scripts/compress.py` projection | `.github/workflows/*` | Verdict |
52
+ |---|---|---|---|---|
53
+ | `bench/` | — | — | `bench-drift.yml` (path filter) | **movable** |
54
+ | `evals/` | — | — | — | **movable** |
55
+ | `workers/` | — | — | `deploy-mcp-worker.yml` (working-dir, 6+ refs) | **movable** (CI updates only) |
56
+ | `user-types/` | `USER_TYPES_DIR = "user-types"` (line 52) | `AUGMENT_SYMLINK_DIRS` includes `"user-types"` | — | **immovable — public contract** |
57
+
58
+ `user-types/` is dropped from Phase 1 — installer + projector reference
59
+ it as a stable root path. Surfaced during execution, not in the
60
+ council's original scope (the council recommended all four; the audit
61
+ narrowed it).
62
+
63
+ ## Decision
64
+
65
+ **Two-phase strategy.** Phase 1 ships now; Phases 2–3 are conditional.
66
+
67
+ ### Phase 1 — Targeted Prune (immediate, ≤ 1 day, no version bump)
68
+
69
+ Move into a new `./internal/` umbrella:
70
+
71
+ - `bench/` → `internal/bench/`
72
+ - `evals/` → `internal/evals/`
73
+ - `workers/` → `internal/workers/`
74
+
75
+ Update:
76
+
77
+ - `.github/workflows/bench-drift.yml` — path filter.
78
+ - `.github/workflows/deploy-mcp-worker.yml` — `working-directory` + `cache-dependency-path`.
79
+ - `taskfiles/engine.yml`, `taskfiles/mcp.yml` — `dir:` references.
80
+ - `AGENTS.md` — placement rule pointer.
81
+
82
+ Outcome: 3 fewer root entries; zero consumer risk; precedent for
83
+ "maintainer-internal → `./internal/`".
84
+
85
+ ### Phase 2 — Pre-audits (gates Phase 3, no time-box)
86
+
87
+ Four audits must complete and pass before Phase 3 opens:
88
+
89
+ 1. **Consumer-contract audit** — GitHub code search +
90
+ `node_modules/@event4u/agent-config/` path probing for
91
+ `scripts/`, `templates/`, `config/`, `schemas/` references.
92
+ 2. **Symlink-mobility test** — verify Cursor / Claude / Windsurf
93
+ honor symlinked projections (`.cursor/` → `./projections/.cursor/`).
94
+ 3. **Hash-sequencing audit** — confirm `.compression-hashes.json`
95
+ uses paths that survive `.agent-src/` relocation (or document the
96
+ regeneration migration).
97
+ 4. **CI-path audit** — every hardcoded path in
98
+ `.github/workflows/*.yml` and `taskfiles/*.yml`.
99
+
100
+ Each audit produces a verdict file under
101
+ `agents/evidence/audits/2026-XX-root-layout-phaseN/`.
102
+
103
+ ### Phase 3 — Conditional multi-workspace (deferred, gated)
104
+
105
+ Only if **all four audits pass**: restructure to npm-workspaces with
106
+ `tooling/` (Python maintainer scripts), `runtime/` (TS app), and
107
+ optionally `projections/` (host-agent configs). If any audit fails,
108
+ Phase 3 closes as "not feasible" and a successor ADR documents the
109
+ blocker.
110
+
111
+ ## Consequences
112
+
113
+ - New top-level `./internal/` directory becomes the home for
114
+ maintainer-only tooling. `AGENTS.md` documents this with one line.
115
+ - `.gitignore` and `eslint`/`pyproject` ignore rules updated as
116
+ needed.
117
+ - The four Phase 2 audits are pre-requirements, not work. They are
118
+ *not* sprint tasks — they run on demand when someone wants to
119
+ re-open multi-workspace.
120
+ - Review on **2027-05-25** or earlier if any trigger fires:
121
+ 1. A new maintainer-only dir is added at root (signal: `./internal/`
122
+ convention is breaking down).
123
+ 2. Phase 2 audits all return clean (signal: Phase 3 is ready).
124
+ 3. A consumer reports breakage from a Phase 1 path change (signal:
125
+ audit missed a contract).
126
+ 4. Council session re-opens the question with new evidence.
127
+
128
+ ## Alternatives considered
129
+
130
+ | Option | Why rejected |
131
+ |---|---|
132
+ | Move everything into `./src/` (original request) | `./src/` is the TS app per ADR-012/016. Collision. |
133
+ | Option 2 — `./tooling/` umbrella with `templates/` / `config/` / `schemas/` | Council: cost underestimated (duplicate-then-deprecate + 2-month window + major bump); installer paths in those dirs are unaudited. |
134
+ | Option 3 — full category-coded migration | Council hard-reject: projection mobility unproven; compression-hash sequencing risk; unshippable without symlink test. |
135
+ | Option 4 — `MAP.md` documentation | Council: adds 51st entry; documentation-as-apology; AGENTS.md already serves this role. |
136
+ | Skip Phase 1, jump to multi-workspace prototype | Loses the cheap visible win; Phase 2 audits unfunded; risks scope creep into Phase 3. |
137
+
138
+ ## References
139
+
140
+ - [`agents/runtime/council/questions/root-cleanup-organizing-principle-2026-05-25.md`](../../agents/runtime/council/questions/root-cleanup-organizing-principle-2026-05-25.md) — council brief.
141
+ - [`agents/runtime/council/sessions/root-cleanup-organizing-principle-2026-05-25.synthesis.md`](../../agents/runtime/council/sessions/root-cleanup-organizing-principle-2026-05-25.synthesis.md) — full synthesis.
142
+ - [`agents/roadmaps/archive/road-to-root-layout-cleanup.md`](../../agents/roadmaps/archive/road-to-root-layout-cleanup.md) — execution roadmap (archived; Phase 1 ✅, Phase 2 ✅, Phase 3 closed).
143
+ - [`agents/evidence/audits/2026-05-root-layout-phase2/`](../../agents/evidence/audits/2026-05-root-layout-phase2/) — Phase 2 audit verdict bundle.
144
+ - [`ADR-029`](ADR-029-multi-workspace-deferred.md) — Phase 3 close-out (multi-workspace deferred indefinitely).
145
+ - [`ADR-012`](ADR-012-typescript-cli-shell.md), [`ADR-016`](ADR-016-installer-architecture.md) — `./src/` is the TS app.
146
+ - [`ADR-019`](ADR-019-router-json-dist-location.md) — `router.json` lives in `./dist/`.
147
+ - `scripts/install.py:52` (`USER_TYPES_DIR`), `scripts/compress.py:1106` (`AUGMENT_SYMLINK_DIRS`) — evidence pinning `user-types/` to root.
@@ -0,0 +1,122 @@
1
+ ---
2
+ adr: 029
3
+ status: accepted
4
+ date: 2026-05-25
5
+ decision: multi-workspace-deferred
6
+ supersedes: —
7
+ superseded_by: —
8
+ phase: v3.x · root-layout-cleanup Phase 3 close-out
9
+ type: structural
10
+ review_date: 2027-05-25
11
+ ---
12
+
13
+ # ADR-029 — Multi-workspace restructure deferred; Phase 3 closed pending L0 symlink-mobility evidence
14
+
15
+ ## Status
16
+
17
+ **Accepted** · 2026-05-25. Successor to
18
+ [`ADR-028`](ADR-028-root-layout.md) Phase 3. Closes the multi-workspace
19
+ restructure (Option 5 from the original council session) as **not
20
+ feasible today**, with a re-open path documented below. Time-boxed:
21
+ review on **2027-05-25** or earlier if any re-open trigger fires.
22
+
23
+ ## Context
24
+
25
+ [`ADR-028`](ADR-028-root-layout.md) defined a three-phase strategy:
26
+
27
+ 1. **Phase 1** — move `bench/`, `evals/`, `workers/` to `internal/`. **Shipped.**
28
+ 2. **Phase 2** — run four pre-audits that gate Phase 3.
29
+ 3. **Phase 3** — conditional multi-workspace restructure
30
+ (`tooling/` · `runtime/` · `projections/`), only if all four
31
+ Phase 2 audits return clean.
32
+
33
+ Phase 2 ran in the same PR as Phase 1 (under maintainer mandate).
34
+ Verdict bundle:
35
+ [`agents/evidence/audits/2026-05-root-layout-phase2/`](../../agents/evidence/audits/2026-05-root-layout-phase2/).
36
+
37
+ | # | Audit | Verdict |
38
+ |---|---|---|
39
+ | 1 | Consumer-contract | ✅ Pass — published surface enumerated |
40
+ | 2 | Symlink-mobility | ⚠️ Partial — subdirectory symlinks proven, top-level untested |
41
+ | 3 | Hash-sequencing | ✅ Pass — source-relative keys, idempotent regeneration |
42
+ | 4 | CI-path inventory | ✅ Pass — ~27 edit points enumerated |
43
+
44
+ Audit 2 is the blocker. The multi-workspace option requires
45
+ **L0 symlinks** (tool root directory itself becomes a symlink, e.g.
46
+ `.cursor/ → projections/.cursor/`). The package today only proves
47
+ **L1 symlinks** (subdirectory level, e.g. `.augment/skills/ →
48
+ ../.agent-src/skills/`). L0 has never been tested against current
49
+ Cursor, Claude Code, or Windsurf builds — and one of those three
50
+ (Augment Code) is already known to refuse symlinked rule files at L1,
51
+ which is the precedent that motivates the audit in the first place.
52
+
53
+ Without L0 evidence, executing Phase 3 would either ship a broken
54
+ projection for at least one host agent or force a fallback to
55
+ per-directory copies that defeat the "single source of truth" win the
56
+ multi-workspace shape is meant to deliver.
57
+
58
+ ## Decision
59
+
60
+ **Defer Phase 3 indefinitely.** Close the Phase 3 roadmap step as "not
61
+ feasible today". Keep the audit bundle as the canonical evidence base
62
+ so that a future maintainer can re-open the question without redoing
63
+ the work.
64
+
65
+ The four root-layout claims survive Phase 1 unchanged:
66
+
67
+ - `bench/`, `evals/`, `workers/` are gone from root (under `internal/`).
68
+ - `user-types/` stays at root (immovable per Audit 1 + ADR-028).
69
+ - Top-level tool roots (`.augment/`, `.cursor/`, `.claude/`, `.clinerules/`)
70
+ stay as real directories with L1 symlinks pointing at `.agent-src/`.
71
+ - The "maintainer-internal → `./internal/`" precedent is the new
72
+ placement rule for new internal dirs (already in `AGENTS.md`).
73
+
74
+ ## Re-open conditions
75
+
76
+ Phase 3 becomes eligible when **all** of these hold:
77
+
78
+ 1. A maintainer (or community contributor) runs the L0 symlink test
79
+ documented in
80
+ [`02-symlink-mobility.md`](../../agents/evidence/audits/2026-05-root-layout-phase2/02-symlink-mobility.md)
81
+ against current Cursor + Claude Code + Windsurf, captures the
82
+ result, and amends Audit 2 to ✅ or ❌.
83
+ 2. If Audit 2 lands ✅: the ~27 CI-path edit points from Audit 4 are
84
+ accepted as in-scope for the migration window; no new hardcoded
85
+ paths added in the interim invalidate the inventory.
86
+ 3. A council session synthesizes the updated verdict bundle and
87
+ produces a fresh recommendation (multi-workspace vs. stay-as-is).
88
+ 4. The maintainer accepts the deprecation cycle cost (installer
89
+ version bump + dual-write window for the projection contract).
90
+
91
+ ## Consequences
92
+
93
+ - The root layout stabilizes at the Phase 1 shape for ≥ 1 year (the
94
+ `2027-05-25` review date).
95
+ - New maintainer-internal directories go under `internal/`. New
96
+ tooling that needs to ship to consumers goes under `scripts/`,
97
+ `config/`, or a new top-level entry that earns its own ADR.
98
+ - The `projections/` umbrella idea is **not dead** — it is gated on
99
+ fresh L0 evidence, not on a new design decision.
100
+ - The four audit files are reusable: Audit 1 (consumer surface),
101
+ Audit 3 (hash portability), and Audit 4 (CI path inventory) remain
102
+ valid until a structural change invalidates them; only Audit 2
103
+ needs runtime re-verification.
104
+
105
+ ## Alternatives considered
106
+
107
+ | Option | Why rejected |
108
+ |---|---|
109
+ | Execute Phase 3 anyway with L0 untested | Ships projection breakage to one of three host agents in the worst case; the win (single source of truth) collapses if any agent forces a fallback to copies. |
110
+ | Run the L0 test in CI | The L0 test requires the host agent's runtime (Cursor / Claude Code IDE plugins); CI cannot exercise it. |
111
+ | Defer **all** of Phase 3 to a separate roadmap | Phase 2 already produced the audit bundle; closing Phase 3 with an ADR captures the verdict without leaving a stale roadmap open. |
112
+ | Re-shape Phase 3 as L1-only | The council's recommendation specifically called out the `projections/` umbrella, which requires L0. Re-shaping to L1-only is a different decision the council did not weigh; would need a fresh council session. |
113
+
114
+ ## References
115
+
116
+ - [`ADR-028`](ADR-028-root-layout.md) — parent decision.
117
+ - [`agents/evidence/audits/2026-05-root-layout-phase2/`](../../agents/evidence/audits/2026-05-root-layout-phase2/) —
118
+ full audit bundle (4 verdict files + README).
119
+ - [`agents/roadmaps/archive/road-to-root-layout-cleanup.md`](../../agents/roadmaps/archive/road-to-root-layout-cleanup.md) —
120
+ execution roadmap, archived (Phase 1 ✅, Phase 2 ✅, Phase 3 closed via this ADR).
121
+ - [`agents/runtime/council/sessions/root-cleanup-organizing-principle-2026-05-25.synthesis.md`](../../agents/runtime/council/sessions/root-cleanup-organizing-principle-2026-05-25.synthesis.md) —
122
+ original council synthesis that proposed the multi-workspace shape.
@@ -25,6 +25,14 @@ _Auto-generated by `scripts/adr/regenerate_index.py`. Do not edit._
25
25
  | [ADR-019](ADR-019-router-json-dist-location.md) | Router Json Dist Location | accepted | 2026-05-23 | — |
26
26
  | [ADR-020](ADR-020-global-only-consumer-scope.md) | Global Only Consumer Scope | accepted | 2026-05-23 | — |
27
27
  | [ADR-021](ADR-021-deployment-shape.md) | Deployment Shape | accepted | 2026-05-24 | — |
28
+ | [ADR-022](ADR-022-daily-workspace-decomposition.md) | Daily Workspace Decomposition | accepted | 2026-05-24 | — |
29
+ | [ADR-023](ADR-023-host-agent-protocol.md) | Host Agent Protocol | accepted | 2026-05-24 | — |
30
+ | [ADR-024](ADR-024-workspace-v0-feature-floor.md) | Workspace V0 Feature Floor | accepted | 2026-05-24 | — |
31
+ | [ADR-025](ADR-025-workspace-chrome.md) | Workspace Chrome | accepted | 2026-05-24 | — |
32
+ | [ADR-026](ADR-026-explain-mode-translation.md) | Explain Mode Translation | accepted | 2026-05-24 | — |
33
+ | [ADR-027](ADR-027-changelog-machine-vs-manual.md) | Changelog Machine Vs Manual | accepted | 2026-05-25 | — |
34
+ | [ADR-028](ADR-028-root-layout.md) | Root Layout | accepted | 2026-05-25 | — |
35
+ | [ADR-029](ADR-029-multi-workspace-deferred.md) | Multi Workspace Deferred | accepted | 2026-05-25 | — |
28
36
 
29
37
  ## Unnumbered (legacy)
30
38
 
@@ -0,0 +1,148 @@
1
+ # Small-Team Recipe — 3–10 people, no code change
2
+
3
+ > **Status** · v0 · 2026-05-24. Phase 9 of
4
+ > [`road-to-employee-product-and-external-proof.md`](../../agents/roadmaps/road-to-employee-product-and-external-proof.md).
5
+ > The recipe relies entirely on **existing primitives**. No new
6
+ > code, no new server, no shared backend. Each user runs the
7
+ > workspace locally; the team shares the inputs.
8
+
9
+ ## Audience
10
+
11
+ A team of 3–10 people in one organisation that wants every member
12
+ to use agent-config as their daily AI tool, with **shared prompts**,
13
+ **shared role experiences**, and **shared knowledge sources** —
14
+ but where buying / running a central server is not justified.
15
+
16
+ Examples this recipe is sized for:
17
+
18
+ - A 4-person landscape-gardening business (one owner, three foremen).
19
+ - A 6-person content team at a small agency.
20
+ - A 5-person consulting partnership.
21
+
22
+ ## Architecture in one picture
23
+
24
+ ```
25
+ ┌─ shared NAS / SharePoint / Dropbox ──────────────────────────┐
26
+ │ knowledge/ │
27
+ │ ├── handbuch.pdf │
28
+ │ ├── offer-templates/ │
29
+ │ └── customer-history/ │
30
+ └───────────────────────────────────────────────────────────────┘
31
+ ▲ ▲
32
+ │ each user mounts │
33
+ │ │
34
+ ┌──────────────────────┴──┐ ┌─────────────────┴─────────┐
35
+ │ Person A laptop │ │ Person B laptop │
36
+ │ workspace + local │ │ workspace + local │
37
+ │ knowledge index (per- │ │ knowledge index (per- │
38
+ │ user, ingested from NAS) │ │ user, ingested from NAS) │
39
+ └─────────────┬─────────────┘ └────────────┬──────────────┘
40
+ │ │
41
+ └──────── git pull / push ─────┘
42
+
43
+
44
+ ┌───────────┴────────────────┐
45
+ │ Shared `agents/overrides/`│
46
+ │ git repo (private) │
47
+ │ ├── prompts/ │
48
+ │ ├── roles/ │
49
+ │ └── glossaries/ │
50
+ └─────────────────────────────┘
51
+ ```
52
+
53
+ ## Set up the shared overrides repo
54
+
55
+ One person does this once:
56
+
57
+ 1. Create a **private** git repo, e.g. `internal-agent-pack`.
58
+ 2. Inside, mirror the structure of the package's `agents/overrides/`:
59
+ `prompts/`, `roles/`, `glossaries/`.
60
+ 3. Add the team's role experiences (Phase 3 of the roadmap):
61
+ one folder per role under `roles/<role>/` with `index.md`,
62
+ `skills.yml`, `prompts/`, and (Phase 6) `explain-glossary.yml`.
63
+ 4. Push to the team's git host. Grant read access to every team
64
+ member, write access to the maintainers.
65
+
66
+ Each team member then:
67
+
68
+ ```bash
69
+ git clone <repo> ~/internal-agent-pack
70
+ ln -s ~/internal-agent-pack/prompts ~/.event4u/agent-config/overrides/prompts
71
+ ln -s ~/internal-agent-pack/roles ~/.event4u/agent-config/overrides/roles
72
+ ln -s ~/internal-agent-pack/glossaries ~/.event4u/agent-config/overrides/glossaries
73
+ ```
74
+
75
+ `git pull` from anywhere on the team rolls out new prompts /
76
+ glossaries to every laptop without any code change.
77
+
78
+ ## Set up shared knowledge
79
+
80
+ Pick one shared mount the whole team has read access to: NAS,
81
+ SharePoint mounted via DAV, Dropbox, Google Drive desktop sync.
82
+ Anything that surfaces as a file path.
83
+
84
+ Each team member runs once:
85
+
86
+ ```bash
87
+ npx @event4u/agent-config knowledge:ingest /Volumes/team-share/knowledge
88
+ ```
89
+
90
+ Per-user index. Same content. When new files land on the share,
91
+ each user re-runs the ingest (Phase 2 will add a watcher later).
92
+
93
+ ## Daily flow per team member
94
+
95
+ ```bash
96
+ npx @event4u/agent-config workspace
97
+ ```
98
+
99
+ Opens the browser tab. Launcher shows the team's role experiences
100
+ (from the shared overrides). Click a task → workspace shells out
101
+ to the user's Tier-1 host (Claude Code / Codex / Gemini) or writes
102
+ to the inbox for Tier-3 hosts. Documents land under
103
+ `~/.event4u/agent-config/workspace/documents/`, **encrypted at
104
+ rest** (Phase 8) with the user's per-machine key.
105
+
106
+ Output documents are local to each user. The team shares **inputs**
107
+ (prompts, role experiences, knowledge sources). The team does
108
+ **not** share **outputs** (offers, mails, memos) through this
109
+ recipe — those are user-private until manually saved to the team
110
+ share.
111
+
112
+ ## Optional: publish the overrides as an npm pack
113
+
114
+ Once the shared overrides repo is stable, the maintainer may
115
+ publish it as a thin npm package:
116
+
117
+ ```bash
118
+ # inside the overrides repo
119
+ npm init --scope=@your-org
120
+ # package.json names: "@your-org/agent-config-team"
121
+ npm publish --access restricted
122
+ ```
123
+
124
+ New team members then `npm install --global @your-org/agent-config-team`
125
+ instead of cloning the repo. The package's `postinstall` script
126
+ creates the same symlinks. This is **optional**; the git-clone path
127
+ above works fine.
128
+
129
+ ## What this recipe does not give you
130
+
131
+ - **No SSO.** Each user authenticates to their host agent (Claude
132
+ Code, etc.) independently.
133
+ - **No central policy enforcement.** Overrides ship via git; users
134
+ can locally edit them.
135
+ - **No shared output store.** Customer-facing documents stay on the
136
+ user's laptop. If the team needs shared output, they save / commit
137
+ the document file to the team share manually.
138
+ - **No org-mode threat model.** This recipe is single-user-per-machine
139
+ with team-level input sharing. The org-mode threats (cross-user
140
+ policy enforcement, audit log centralisation) are explicitly out
141
+ of scope; see [`team-deployment-posture`](team-deployment-posture.md).
142
+
143
+ ## Cross-references
144
+
145
+ - Posture: [`team-deployment-posture`](team-deployment-posture.md).
146
+ - Workspace: [`docs/contracts/daily-workspace.md`](../contracts/daily-workspace.md).
147
+ - Knowledge ingestion: [`docs/contracts/local-knowledge-ingestion.md`](../contracts/local-knowledge-ingestion.md).
148
+ - Role experiences: [`docs/contracts/role-experience.md`](../contracts/role-experience.md).
@@ -0,0 +1,91 @@
1
+ # Team Deployment Posture
2
+
3
+ > **Status** · v0 · 2026-05-24. Phase 9 of
4
+ > [`road-to-employee-product-and-external-proof.md`](../../agents/roadmaps/road-to-employee-product-and-external-proof.md).
5
+ > Codifies what is shipped today, what stays cancelled-with-reason,
6
+ > and what is reachable via existing primitives — so feedback rounds
7
+ > 9+ asking "team SSO when?" land on a written answer.
8
+
9
+ ## Where agent-config sits today
10
+
11
+ | Surface | Status |
12
+ |---|---|
13
+ | Single-user workspace | **Shipped** (Phases 4–7 of this roadmap, single-user / single-machine) |
14
+ | Small-team via shared overrides | **Shipped** (existing primitives — see [`small-team-recipe`](small-team-recipe.md)) |
15
+ | Organization mode (SSO, central policy, OAuth connectors) | **Cancelled-with-reason** — tracked in successor roadmap stubs |
16
+
17
+ ## Shipped — what works today
18
+
19
+ The phases below this section, once implemented, deliver:
20
+
21
+ - A daily workspace browser tab (Phase 4) — per-user, local-only.
22
+ - Document workflows (Phase 5) — offer / mail / memo / brief /
23
+ video-script with local revision history and export.
24
+ - Plain explain mode (Phase 6) — role-aware translation of the
25
+ memory-trust surface.
26
+ - Local analytics (Phase 7) — top prompts, completion rate,
27
+ session length; never leaves the machine.
28
+ - At-rest encryption (Phase 8) — AES-256-GCM with OS keyring,
29
+ default on from workspace v1.0.
30
+
31
+ All of these run on **one machine, one OS user, one workspace**. No
32
+ remote backend. No shared state. No sign-on screen.
33
+
34
+ ## Reachable via existing primitives — small-team mode
35
+
36
+ A team of 3–10 people can use the package collaboratively today
37
+ without any code change, by leaning on three existing primitives:
38
+
39
+ | Primitive | What it gives the team |
40
+ |---|---|
41
+ | `agents/overrides/` repo, shared via git | Shared prompts, role experiences, glossaries, skills overrides |
42
+ | Knowledge ingestion from a shared NAS / SharePoint mount | Each user runs `/knowledge:ingest` against the same mount; per-user index, same content |
43
+ | Manual prompt-pack distribution via npm `@event4u/agent-config-<team>` | Team publishes a thin pack of role experiences as a private npm package |
44
+
45
+ The recipe lives in [`small-team-recipe`](small-team-recipe.md).
46
+
47
+ ## Cancelled-with-reason — organization mode
48
+
49
+ The prior archived `road-to-internal-ai-os-deployment.md` Phases 2–5
50
+ were cancelled under Hard-Floor (no real first customer, no audit
51
+ funding, no recruit-session signal). Phase 9 **does not reactivate
52
+ them**. The cancellations stand:
53
+
54
+ | Cancelled surface | Reason | Successor roadmap (stub) |
55
+ |---|---|---|
56
+ | **SSO / OIDC sign-on** | No customer requires it. Auth surface is auth-adjacent — `engineering-safety-floor` Hard-Floor on adoption without a funded security audit. | `road-to-team-sso.md` |
57
+ | **Central policy enforcement** | Multi-tenant policy without SSO is a half-solution. Wait for SSO. | `road-to-central-policy.md` |
58
+ | **Team-shared overrides server** | Shared-overrides-via-git already works for the small-team case. Server only makes sense once the org-mode threshold is reached. | `road-to-team-context.md` |
59
+ | **OAuth connectors (Google, Slack, M365)** | Per-connector OAuth flow is a permanent footprint we can't ship without an org user agreeing to scope it. | `road-to-internal-connectors.md` |
60
+
61
+ Each successor roadmap is an empty-named stub today; activation
62
+ requires a recruited team customer plus a human-reviewed security
63
+ audit. Until then, the answer to "team SSO when?" is: **not on this
64
+ package, not on this roadmap**.
65
+
66
+ ## Decision posture going forward
67
+
68
+ - **Default answer to org-mode requests**: point at this document.
69
+ Do not re-open the cancellation without a recruited customer +
70
+ funded audit.
71
+ - **Default answer to small-team requests**: point at
72
+ [`small-team-recipe`](small-team-recipe.md). The recipe is
73
+ sufficient for 3–10 people, no code change required.
74
+ - **Default answer to single-user requests**: workspace + Phases
75
+ 4–7 deliver the daily experience.
76
+
77
+ The Hard-Floor item stays in force. Nothing in Phase 9 lifts it.
78
+ The successor roadmap stubs exist so cross-references resolve and
79
+ so a future maintainer (or external contributor with funding) can
80
+ pick them up without re-deriving the cancellation rationale.
81
+
82
+ ## Cross-references
83
+
84
+ - Recipe: [`small-team-recipe`](small-team-recipe.md).
85
+ - Archived: `agents/roadmaps/archive/road-to-internal-ai-os-deployment.md`.
86
+ - Stubs (created by Phase 9 Step 4):
87
+ - `agents/roadmaps/stubs/road-to-team-sso.md`
88
+ - `agents/roadmaps/stubs/road-to-central-policy.md`
89
+ - `agents/roadmaps/stubs/road-to-team-context.md`
90
+ - `agents/roadmaps/stubs/road-to-internal-connectors.md`
91
+ - Engineering safety floor: [`.augment/rules/non-destructive-by-default.md`](../../.augment/rules/non-destructive-by-default.md).
@@ -8,10 +8,14 @@
8
8
 
9
9
  > **Eval-gated messaging note.** Until `task bench --corpus non-dev` reports `selection_accuracy >= 0.60` (step-12 Phase 1 exit), this page is documentation, not marketing. The skills listed below are the candidates the corpus tests against; their description quality is what the eval validates.
10
10
 
11
+ > **Deployment posture.** Single-user workspace today (one machine, one user — `npx @event4u/agent-config init`). Small team today (3–10 people) via shared `agents/overrides/` Git repo + shared NAS for knowledge — recipe: [`docs/deploy/small-team-recipe.md`](deploy/small-team-recipe.md). Organization mode (SSO · central policy · team context · internal connectors) is **not started** — tracked under [`agents/roadmaps/stubs/`](../agents/roadmaps/stubs/README.md) with explicit gating (recruited customer + funded audit + maintainer ADR). Rationale: [`docs/deploy/team-deployment-posture.md`](deploy/team-deployment-posture.md).
12
+
11
13
  ---
12
14
 
13
15
  ## Creator (writer, marketer, indie content shop)
14
16
 
17
+ > **Tailored role experience available →** [`agents/roles/content-creator/`](../agents/roles/content-creator/index.md) — three first tasks, priority-ordered skill shortlist, prompt scaffolds. Status `draft` until recruit-session 02 lands.
18
+
15
19
  **You want this if:** you draft blog posts, marketing emails, launch copy, or release announcements and want a writing assistant that holds a defined brand voice across surfaces. You need brand-voice discipline more than code-quality enforcement. You will spend most of your time in Claude Desktop / ChatGPT, not in a terminal.
16
20
 
17
21
  - [`voice-and-tone-design`](../.agent-src/skills/voice-and-tone-design/SKILL.md) — define and audit brand voice (voice attributes, tone-by-context matrix).
@@ -30,6 +34,13 @@ Cinematic-blueprint approach: the agent expands your script into a 12-block scen
30
34
 
31
35
  `AIV_DRYRUN=true` is the mandatory default — no provider call, no spend until you opt in.
32
36
 
37
+ **Worked example — one-line idea to stitched cut, four commands:**
38
+
39
+ 1. `/video:from-script "kurzes Werbevideo für ein Galabau-Projekt"` — agent expands the one-line idea into a 12-block blueprint, locks the character identity, and prints the provider-tuned prompt set.
40
+ 2. `/video:storyboard` — review the 12-block scene plan before any provider call; edit blocks inline (camera, lighting, blocking, motion) until the storyboard reads as intended.
41
+ 3. `/video:scene` — render one scene at a time against the configured provider adapter; iterate on the motion + audio prompt without paying for the full clip.
42
+ 4. `/video:stitch` — assemble the rendered scenes into the final clip via ffmpeg, with the character-lock JSON enforcing identity across cuts.
43
+
33
44
  **Try the first win →** [`pack-ai-video/FIRST_WIN.md`](../packages/pack-ai-video/FIRST_WIN.md) — one-line idea to a provider-tuned motion prompt in ~12 minutes.
34
45
 
35
46
  > **What this is not:** the package does **not** host a video model. It orchestrates prompts against the provider you select (Veo, Kling, Sora, Runway, …). Trust level is set by the provider's adapter lifecycle tier — see [`provider-lifecycle-discipline`](../.agent-src/rules/provider-lifecycle-discipline.md). You pay the provider directly, the package never sees your API key.
@@ -66,6 +77,8 @@ Cinematic-blueprint approach: the agent expands your script into a 12-block scen
66
77
 
67
78
  ## Consultant (advisory, freelance, fractional)
68
79
 
80
+ > **Tailored role experience available →** [`agents/roles/consultant/`](../agents/roles/consultant/index.md) — three first tasks (client-brief refinement, investor memo, deck outline), priority-ordered skill shortlist. Status `draft` until recruit-session 03 lands.
81
+
69
82
  **You want this if:** you sell discovery, positioning, competitive analysis, or roadmap audits. Output is briefs and slide content for a client, not code. You need defensible methodology behind every deliverable.
70
83
 
71
84
  - [`discovery-interview`](../.agent-src/skills/discovery-interview/SKILL.md) — switch-event JTBD guides, bias audit, falsifiable hypothesis.
@@ -76,6 +89,20 @@ Cinematic-blueprint approach: the agent expands your script into a 12-block scen
76
89
 
77
90
  ---
78
91
 
92
+ ## Galabau owner (Garten- und Landschaftsbau, small-business operator)
93
+
94
+ > **Tailored role experience available →** [`agents/roles/galabau/`](../agents/roles/galabau/index.md) — three first tasks (offer drafting, customer-email reply, project-brief refinement), priority-ordered skill shortlist. Status `draft` until recruit-session 01 lands.
95
+
96
+ **You want this if:** you run or co-run a small Garten-und-Landschaftsbau shop and draft customer offers, customer emails, and project briefs every week — usually after the on-site day is done. You want a writing assistant that knows your tone, holds it across customers, and turns a one-paragraph project sketch into a structured document you can send the next morning.
97
+
98
+ - [`refine-prompt`](../.agent-src/skills/refine-prompt/SKILL.md) — tighten fuzzy customer briefs before any drafting so the agent does not invent scope.
99
+ - [`voice-and-tone-design`](../.agent-src/skills/voice-and-tone-design/SKILL.md) — lock the shop tone so offers and emails read consistent across customers.
100
+ - [`doc-coauthoring`](../.agent-src/skills/doc-coauthoring/SKILL.md) — section-by-section drafting for longer offers; never one giant generation.
101
+
102
+ **Install path:** **MCP recommended.** Claude Desktop opens, the package shows up as a tool, no terminal required. See [`docs/mcp.md`](mcp.md). CLI install is the right path only if you also sit in this repo with code-shaped work.
103
+
104
+ ---
105
+
79
106
  ## Go-To-Market (sales, marketing ops, RevOps)
80
107
 
81
108
  **You want this if:** you own pipeline shape, forecast accuracy, launch sequencing, or post-launch comms. You need deal-level rigor (MEDDIC, exit criteria) and narrative skills (release comms, messaging) in the same agent.
@@ -146,7 +146,7 @@ Your agent now understands slash commands:
146
146
  | `/quality-fix` | Run and fix all quality checks |
147
147
  | `/chat-history` | Inspect the persistent chat-history log (read-only `show`) |
148
148
 
149
- → [Browse all 129 active commands](../.agent-src/commands/)
149
+ → [Browse all 136 active commands](../.agent-src/commands/)
150
150
 
151
151
  ---
152
152