Execution-channel inventory
Status
Initial lexical baseline, 2026-07-28. These counts establish the search boundary; they are not yet a semantic classification of executable versus illustrative occurrences.
The scan covers AGENTS.md, AGENTS.md.template, INSTALL.md, and all Markdown under kb/instructions/. Canonical instructions are counted; generated .claude/skills/ and .agents/skills/ projections are excluded to avoid double counting.
Baseline
| Signal | Initial result | Meaning and limitation |
|---|---|---|
Markdown files under kb/instructions/ |
83 | Full canonical instruction collection, including type/readme/support files |
| Shell-language fences in the scoped surface | 66 | bash, sh, PowerShell, batch/cmd, console, or shell fences; a fence may be illustrative |
Scoped files mentioning commonplace-* |
27 | 24 canonical instruction files plus AGENTS.md, its template, and INSTALL.md |
Scoped files mentioning rg |
14 | 11 canonical instruction files plus the three root/control-plane surfaces |
Promoted SKILL.md files mentioning commonplace-* |
6 | Compilation of promoted skills alone cannot cover the other 18 canonical instruction files |
Promoted SKILL.md files mentioning rg |
4 | rg also appears outside promoted skills |
The first conclusion is structural: promoted skills are not a sufficient compilation or portability boundary. Any solution scoped only to them leaves executable Commonplace commands in non-promoted instructions and leaves part of the rg surface unresolved.
Initial tool census
File counts below are lexical counts over the same broad surface, not yet confirmed command invocations.
| Tool or family | Files | Initial concern |
|---|---|---|
commonplace-* |
27 | Project-local venv, bare-name resolution, .exe layout on Windows, package version identity |
rg |
14 | Availability outside bundled agent runtimes; compatible flags and regex behavior on native Windows |
find |
13 | POSIX utility absent from stock PowerShell; some mentions may mean search conceptually rather than the executable |
| Git | 11 | Declared development prerequisite, but command availability, repository discovery, and sandboxed .git access differ |
| uv | 4 | Installation/update owner versus runtime dependency; cache location and sandbox access |
| pytest | 4 | Project-venv resolution and Windows executable suffix; should not silently fall back to a global pytest |
python3 |
4 | Native Windows normally exposes py -3 or python, not necessarily python3 |
python |
1 | May resolve differently from py -3 or the project venv |
| direnv | 3 | Shell-hook inheritance; not a native Windows baseline and not inherited by desktop apps automatically |
xargs |
2 | POSIX-only baseline; -r semantics are load-bearing in at least one known instruction |
wc |
2 | POSIX pipeline dependency with easy but non-literal PowerShell alternatives |
sort |
2 | Name exists in several systems with different command resolution and behavior |
sed |
1 | POSIX text-processing dependency; broader substring scans overcount prose such as “used” |
| curl | 1 | Modern Windows often aliases or ships curl differently; flags and proxy behavior need verification |
| Roughdraft | 1 | Optional external application/CLI with GUI-launch and platform-support questions |
| Codex / Claude runner names | 3 / 10 | Mostly runtime discussion today; later semantic classification must separate prose references from nested CLI invocation |
Known workflow-specific tools not surfaced by this first broad lexical count—because they live in narrower references, code, local settings, or adjacent workflows—must still be checked when a live instruction routes to them. Candidates include qmd, ruff, mkdocs, sqlite3, jq, gh, awk, and flock.
Commonplace command surface
The initial scan found these command-like identifiers. Some are placeholders or prose identifiers and must be classified before being treated as real entry points:
commonplace-ack-reviewcommonplace-create-review-jobscommonplace-finalize-review-jobcommonplace-freshness-retirecommonplace-freshness-statuscommonplace-github-snapshotcommonplace-guard-full-pass-reportcommonplace-initcommonplace-relocate-directorycommonplace-relocate-notecommonplace-review-target-selectorcommonplace-validatecommonplace-warn-selectorcommonplace-x-snapshot
False-positive or vocabulary candidates already visible include commonplace-foo, commonplace-repo, commonplace-store, and commonplace-checkout-refreshed-at. The semantic pass must reconcile every apparent command against [project.scripts] in pyproject.toml rather than accepting lexical shape as existence.
Inventory record
Each executable locus should receive one record with these fields:
| Field | Purpose |
|---|---|
locus_id |
Stable identifier derived from canonical path plus heading/role |
artifact_path |
Canonical source, not a generated projection |
consumer |
Agent, operator, hook, subprocess, or generated worker |
instruction_excerpt |
Minimal literal command or procedure under analysis |
tool_ids |
Every external executable or runtime facility required |
shell_constructs |
Pipes, redirects, command substitution, environment assignment, globbing, conditionals, quoting |
path_assumptions |
Separator, venv layout, executable suffix, current directory, project-root discovery |
availability_class |
Required prerequisite, package-owned, runtime-bundled, optional accelerator, or replaceable detail |
install_owner |
Commonplace install, project install, runtime, OS, or operator |
verification |
Exact bare-name/session probe and expected result |
fallback |
Explicit alternative or “none”; distinguish loud from silent degradation |
channels_verified |
Dated runtime/OS/shell observations with versions |
candidate_solutions |
References into the solution catalogue, without selecting one prematurely |
Every proposed probe also needs an implementability record before it enters the shared procedure:
| Field | Purpose |
|---|---|
target_environment |
Source checkout, initialized full project, reader/vendor install, package-only, remote/restricted, or other |
prerequisites |
Required shell facility, resolved executable, local fixture, readable path, write scope, launch action, or second prepared environment |
prerequisite_probe |
Observation that establishes each prerequisite without assuming the conclusion |
safe_when_absent |
Exact not run result when a prerequisite is missing or unknown |
mutation_scope |
Expected state changes; landscape probes should be read-only except for explicitly bounded process-local state |
layout_independence |
Whether the probe works outside this source checkout and how its targets are discovered |
No check joins the cross-environment procedure merely because it is useful in this repository. It must either be executable through facilities already known to exist in the target environment or be guarded by a preceding capability observation.
Runtime capability matrix schema
For every execution system, record:
- operating system and filesystem/path model;
- shell used for ordinary tool calls and for hooks;
- whether separate tool calls share a process, current directory, aliases, functions, and exported environment;
- how a runtime launched from a shell inherits environment;
- whether desktop/IDE surfaces reuse a long-lived process across projects;
- session-start, resume, compact, and directory-change hooks;
- whether hooks can persist environment into later tool calls;
- project-local environment configuration and whether it can prepend to inherited
PATH; - worktree creation/setup behavior;
- executable suffix and command lookup rules;
- bundled tools, with version and whether bundling is a documented contract;
- sandbox filesystem, network, process, and home/cache constraints.
Round 1 procedure feedback
The retained Round 1 reports—Codex source checkout, Codex initialized project with an unallowed .envrc, and Claude Code source checkout—established ten corrections to the breadth probe:
- Record exact project-venv
PATHmembership separately fromVIRTUAL_ENV. The report observed project-venv command resolution withVIRTUAL_ENVunset; that is compatible with a stable baselinePATHsupplied independently to each fresh tool call. - Treat PID equality as inconclusive. Fresh isolated processes can reuse the same small PID, while the deliberately mutated environment variable and shell function directly test shell-state persistence.
- Scope Git status to one established fixture. Whole-worktree cleanliness is unrelated to command-channel capability and can produce large, privacy-sensitive, or distracting output.
- Treat the unchanged working directory as call context, not a persistence test. Round 1 does not mutate it, so only the deliberately mutated environment variable and function answer the same-shell question.
- Make every ordinary block self-contained. Once fresh-call behavior is a live possibility, a later block cannot reuse a shell variable assigned during layout discovery.
- Record baseline-provider evidence without dumping it. Marker values and
.envrccontents are unnecessary and may contain secrets. - Do not equate
.envrcor direnv-marker presence with authorization or loading. The initialized-project report had both while its.venv/binwas absent fromPATHand the bare Commonplace command failed. A conditional, redacteddirenv statuscheck must distinguish the workspace file being found, allowed, and loaded from state inherited from another directory. - Treat failed direnv authorization as decisive when the expected venv directory is absent from
PATH.Loaded RC pathmay still name the current file; that label alone does not show its exports were applied. - Record command kind without dumping definitions. Claude Code supplied
findas a runtime function shim, demonstrating that name resolution is not executable identity; alias targets and function bodies are unnecessary and potentially sensitive in a breadth report. - Keep shell-mutation persistence separate from launcher inheritance. Fresh tool shells rule out activating once inside a tool call, but an environment established before launching the runtime may still be inherited as the baseline of every fresh child; that requires a separate launch comparison.
These changes define procedure ID execution-channel-round1-v4-2026-07-28. The retained v4 reports supersede and replace their v3 runs.
V4 confirmation
The retained Claude Code v6 report reproduces the earlier v4 environment while classifying the runtime-supplied find name as a function without disclosing its definition. The Codex initialized-project v4 repeat reproduced command-discovery failure and correctly concluded that an unallowed .envrc had not prepared the environment despite a matching Loaded RC path label.
Together they form an allowed/unallowed direnv contrast:
| Environment | .envrc found |
allowed | loaded path names workspace | project venv on PATH |
bare Commonplace command |
|---|---|---|---|---|---|
| Claude Code source checkout | yes | yes | yes | yes | succeeds |
| Codex initialized project | yes | no | yes | no | fails |
This confirms v4's observation rules. Causal attribution remains weaker than the observed state: the positive report is consistent with direnv preparation but does not isolate hook execution from launcher inheritance. For solution comparison, directory-aware environment management is therefore catalogued separately from runtime-native project configuration.
V5 disclosure hardening
Reviewing the probe as a payload sent to collaborators exposed a retention risk independent of its final report rules: raw direnv status enters the tool transcript before an agent can summarize it, carrying allow hashes, watch metadata, and local paths. Procedure v5 captures that output inside the shell process and emits only workspace-match, authorization, and loaded-identity classifications.
V5 also makes disclosure review a completion condition. Reports normalize workspace/home/temp prefixes, inspect the final payload for credential and configuration material, withhold evidence that cannot be safely redacted, and append an explicit attestation. The review itself is tool-independent; an already available scanner may supplement it but cannot become a new prerequisite.
V6 persistence-output correction
The superseded Claude Code v5 run identified an internal inconsistency: the step-7 census used kind-only discovery, but the published POSIX persistence blocks still used type commonplace_shell_probe_function, which prints the function definition before the final disclosure review can remove it. The reporter safely substituted type -t, but that is Bash-specific and would make nominally comparable runs differ from the instruction.
Procedure v6 removes resolver output from the persistence test entirely. Call A invokes the controlled function and records its literal result; call B runs command -v with output discarded and records only a presence boolean. The persistence evidence is unchanged, works in a POSIX shell, and cannot retain the definition.
The retained Claude Code and Codex v6 reports both execute the published blocks without deviation, retain only the controlled result and presence boolean, and pass the disclosure review. Their option-4 wording about .envrc is provisional report interpretation: until a runtime-native project configuration mechanism is observed, directory-aware direnv evidence belongs to option 16.
Repeatable sweeps
The workshop should turn these exploratory searches into a checked script only after the inventory record stabilizes. Until then, retain the commands as investigation aids:
rg -l '\bcommonplace-[a-z0-9-]+' AGENTS.md AGENTS.md.template INSTALL.md kb/instructions --glob '*.md'
rg -l '(^|[^[:alnum:]_-])rg([^[:alnum:]_-]|$)' AGENTS.md AGENTS.md.template INSTALL.md kb/instructions --glob '*.md'
rg -n '^```(bash|sh|powershell|batch|cmd|console|shell)' AGENTS.md AGENTS.md.template INSTALL.md kb/instructions --glob '*.md'
The eventual sweep must parse fenced blocks and declared command positions rather than relying only on regex. It must also inspect files linked as required execution references and reconcile commonplace-* names against the package entry-point registry.
Next inventory passes
- Classify all 27
commonplace-*files by executable locus and distinguish real commands from placeholders. - Parse all 66 shell-language fences, recording constructs separately from executable names.
- Trace required links from every canonical instruction so command-bearing references enter the graph.
- Verify the
rgcontract per runtime: installation source, version, command lookup, regex/flag compatibility, and sandbox behavior. - Repeat for Git and the POSIX utility cluster, then for workflow-specific tools.
- Compare source checkout, installed KB, and worktree command environments.