You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@magpie.apache.org by po...@apache.org on 2026/10/25 22:55:16 UTC
(magpie) 01/01: docs(spec-loop): sync specs with #1829
This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch sync-specs-20261025-2
in repository https://gitbox.apache.org/repos/asf/magpie.git
commit b0e5145a6deff333f3613f154a69feedefdba238
Author: Jarek Potiuk <po...@apache.org>
AuthorDate: Sun Oct 25 23:36:51 2026 +0100
docs(spec-loop): sync specs with #1829
Brings the specs up to main at cb51b53b5: the setup skill's own
welcome-only check, the Subversion personal layer on the pre-flight path
and in `setup config` Step 0, the re-pointed root Codex hook and the
corrected SETUP_HOOKS fallback (dropping the two known gaps #1829
closed), and the generate-cve-json configuration docs.
Generated-by: Claude Opus 5
---
tools/spec-loop/.last-sync | 2 +-
tools/spec-loop/specs/adoption-and-setup.md | 32 +++++++++++++++++------
tools/spec-loop/specs/cve-tooling.md | 4 +++
tools/spec-loop/specs/marketplace-distribution.md | 17 +++++-------
4 files changed, 36 insertions(+), 19 deletions(-)
diff --git a/tools/spec-loop/.last-sync b/tools/spec-loop/.last-sync
index a75880d31..70991c999 100644
--- a/tools/spec-loop/.last-sync
+++ b/tools/spec-loop/.last-sync
@@ -1 +1 @@
-95b0e91475115aeb5cdadc44e162712cc1f2e675
+cb51b53b5c75dc4d98421da894417a32dd7872cd
diff --git a/tools/spec-loop/specs/adoption-and-setup.md b/tools/spec-loop/specs/adoption-and-setup.md
index f491366a8..c85f225b8 100644
--- a/tools/spec-loop/specs/adoption-and-setup.md
+++ b/tools/spec-loop/specs/adoption-and-setup.md
@@ -84,7 +84,12 @@ acceptance:
- Every skill's pre-flight runs the checker with
`PYTHONPATH=".apache-magpie-local:$(git rev-parse --git-common-dir 2>/dev/null || echo .git)/../.apache-magpie-local:$(git rev-parse --git-common-dir 2>/dev/null || echo .git)/apache-magpie:.svn/apache-magpie"`,
so the copy is found in this checkout's `.apache-magpie-local/`, the
- main checkout's, or the git-directory home. The project-verdict
+ main checkout's, the git-directory home, or a Subversion working
+ copy's `.svn/apache-magpie/` (#1829); outside git the substitution
+ falls back to `.git`, yielding paths that do not exist, so the command
+ never errors. `tools/setup-preflight/tests/test_layers.py` runs the
+ block's path in a git repository, a Subversion working copy and a
+ directory with no version control. The project-verdict
cache is keyed on the checkout, since worktrees may share one
personal layer.
- An unadopted repository that still has an in-tree
@@ -834,11 +839,25 @@ committed version with drift detection.
Checker verification during `config` and `upgrade` uses `--no-welcome`;
unreadable optional guides do not suppress actual setup findings, and
guide names cannot select Markdown files outside the shipped guides.
+ The setup family runs no shared pre-flight, so the `setup` skill alone
+ checks for its guide, before any sub-action:
+ `python3 -m setup_preflight.welcome due --skill setup` answers
+ `{"verdict": "ok"}` or the same `welcome` finding and rules the
+ pre-flight would emit, built without importing `core`, and is silent
+ when it cannot run; the other setup-family skills show no guide
+ (#1829, eval suite `setup/welcome-first-run`).
38. A freshly scaffolded `project.md` carries `tracker.platform: TODO`, so
`setup config` asks for the security-tracker backend (`github`,
`jira` or `local-files`) on every first setup with a `security-*` skill
in scope; the Jira steps map labels to whitespace-free names and
require the backend's `doctor` to pass (#1683).
+39. `setup config` Step 0 names the working copy's version control, as
+ `layers.py` does (#1829): git keeps the personal layer in the git
+ directory, a Subversion working copy (`.svn/` holding `wc.db` in the
+ current directory) in `.svn/apache-magpie/`, and a directory with no
+ version control in the in-tree `.apache-magpie-local/`. A `.svn/` only
+ in a parent directory stops `config` and asks for it to be run from the
+ working copy's root.
## Validation
@@ -855,13 +874,10 @@ uv run --project tools/skill-and-tool-validator --group dev skill-and-tool-valid
here is the fallback. The skills delivered are the same tree either way —
only the namespace of their invocation differs.
-- **The `setup` family's welcome guide (#1725) is never shown on its own.**
- The setup family is exempt from the shared pre-flight block
- (`EXEMPT_FAMILIES` in `tools/dev/check-shared-blocks.py`), and no setup
- skill runs the checker's welcome path, so `guides/setup.md` is reachable
- only through `/magpie-setup:welcome-guide setup`; the checker's logic for it
- is tested (`test_welcome.py`, eval case `preflight-floor` 20) but no skill
- ever asks for it.
+- **The `setup` welcome check is silent until the checker is in the personal
+ layer on a sandboxed marketplace install,** where the plugin cache cannot
+ be executed, and on a machine whose personal-layer checker predates the
+ `due` action until `setup upgrade` refreshes it.
- `stable`; gaps appear as new agent targets to add to the registry
([`agents.md`](../../../plugins/magpie-setup/skills/setup/agents.md)) or new override
surfaces — recorded by the plan pass.
diff --git a/tools/spec-loop/specs/cve-tooling.md b/tools/spec-loop/specs/cve-tooling.md
index 2301d0066..517085ea9 100644
--- a/tools/spec-loop/specs/cve-tooling.md
+++ b/tools/spec-loop/specs/cve-tooling.md
@@ -65,6 +65,10 @@ reviewable.
`cve_authority.vulnogram.asf_org_id` in
`organizations/ASF/organization.md`, where the one ASF-wide UUID now
lives instead of a per-project row (#1779).
+ The package README's *Configuration* section documents that lookup
+ order, every key with its type, default and meaning, and a minimal
+ example, and the generator's config-not-found error points at it
+ (#1829).
- `tools/cve-tool-vulnogram/oauth-api/` — a `uv` project exposing six
console scripts that talk to the Vulnogram HTTP API with a Bearer token
the operator copies from `https://cveprocess.apache.org/users/token`
diff --git a/tools/spec-loop/specs/marketplace-distribution.md b/tools/spec-loop/specs/marketplace-distribution.md
index 4c25fb2e9..5c7578e48 100644
--- a/tools/spec-loop/specs/marketplace-distribution.md
+++ b/tools/spec-loop/specs/marketplace-distribution.md
@@ -107,7 +107,13 @@ choose the shell (#1794); on a version change it points at
[`adoption-and-setup.md`](adoption-and-setup.md).
`tools/setup-preflight/tests/test_session_hook.py` asserts that wiring;
`check-family-plugins.py` checks only that `hooks.json` references
-`check-upgrade.sh`.
+`check-upgrade.sh`, and its `--fix` fallback writes the same `/bin/bash -p`
+command when `hooks.json` is missing (#1829).
+The root `.codex-plugin/plugin.json` wires the same script inline as
+`/bin/bash -p "${PLUGIN_ROOT}/plugins/magpie-setup/hooks/check-upgrade.sh"`:
+the root plugin's `PLUGIN_ROOT` is the repository root, where the script
+finds the version manifests and the `skills/setup` link it needs, and
+`check-family-plugins.py` fails on any other wiring (`CODEX_HOOKS`, #1829).
Its manifest declares `"types": "./hooks/types.d.ts"`, and
`check-family-plugins.py` fails when `hooks.json` lacks `modules` or the
`check-upgrade.sh` hook, or when the manifest also declares inline `hooks`,
@@ -291,12 +297,3 @@ For the Claude Code family, `claude plugin validate . --strict`.
a bump that is forgotten fails silently in the one way that matters: adopters
keep being told they are up to date. The staleness is only visible by reading
the timestamp.
-- **`check-family-plugins.py`'s `SETUP_HOOKS` fallback lags the wiring.**
- When `plugins/magpie-setup/hooks/hooks.json` is missing, `--fix` writes
- inline manifest hooks with the bare `${CLAUDE_PLUGIN_ROOT}/hooks/check-upgrade.sh`
- command, not the `/bin/bash -p` form `hooks.json` uses since #1794.
-- **The root `.codex-plugin/plugin.json` wires a hook that does not ship.**
- Its inline `SessionStart` hook runs `${PLUGIN_ROOT}/hooks/check-upgrade.sh`,
- but the repository root has had no `hooks/` directory since #1208; the
- script lives only in `plugins/magpie-setup/hooks/`, and the root wiring also
- lacks the `/bin/bash -p` form.