@aacombarro89/praxis 0.1.12 → 0.1.14

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.
@@ -0,0 +1,90 @@
1
+ ---
2
+ description: Hub-sovereign workspace upkeep — audit this hub and its cloned members, report drift and proposed edits, and apply only what the user confirms.
3
+ argument-hint: [optional-member-or-area-to-focus]
4
+ allowed-tools: Read, Glob, Bash(git log:*), Bash(npx @aacombarro89/praxis@latest check:*), Bash(npx @aacombarro89/praxis@latest sync:*), Bash(npx @aacombarro89/praxis check:*), Bash(npx @aacombarro89/praxis sync:*), Bash(praxis check:*), Bash(praxis sync:*)
5
+ ---
6
+
7
+ Focus: {{arguments}} — if empty, cover the whole workspace at a high level.
8
+
9
+ This is the hub-sovereign upkeep pass for a Praxis **workspace**: a meta-repo
10
+ with independent git repos cloned beneath it. It sequences the hub's own
11
+ upkeep, keeps the hub wiki's cross-repo knowledge current, fans work out to
12
+ cloned members in **audit mode only**, and never edits a member repo without
13
+ the user's explicit confirmation.
14
+
15
+ **Planning entry.** Enter this pass in planning mode when the rule's planning
16
+ trigger routed here, or when `{{arguments}}` states a planning or
17
+ implementation question rather than a general sweep. Under planning entry:
18
+ scope step 4's fan-out to one read-only planning workstream per affected
19
+ cloned member instead of the full roster; treat steps 2 and 3 as optional
20
+ observations, skipped when they don't bear on the question; and collapse
21
+ steps 5 and 6 into a single planning synthesis — constraints, validation
22
+ commands, risks, and `file:line` evidence for the hub plan — instead of the
23
+ consolidated upkeep report. The entire pass runs read-only in this mode: hub
24
+ drift (step 2) and wiki staleness (step 3) are reported as proposals only,
25
+ and no `sync`, wiki edit, or instruction edit is applied until the user is
26
+ out of planning and confirms.
27
+
28
+ **CLI resolution (all repos).** In the hub and every cloned member, run
29
+ `praxis check` when that repo has an available `praxis` command. If `praxis` is
30
+ unavailable, immediately fall back to `npx @aacombarro89/praxis@latest check`
31
+ and continue the pass — a missing local command is not a reason to skip that
32
+ repo. Use the matching `praxis sync` or
33
+ `npx @aacombarro89/praxis@latest sync` invocation if drift needs syncing.
34
+ Always pin the fallback to `@latest`; never use a bare
35
+ `npx @aacombarro89/praxis`, which can silently reuse a stale cached build.
36
+
37
+ 1. **Read the workspace** from `praxis.yaml`'s `workspace:` section (members,
38
+ edges, contract pages). If it is absent, say so and stop — this command is
39
+ for a workspace hub only. Note any member whose directory isn't cloned yet;
40
+ skip it in the steps below and point at that repo's own clone/setup script
41
+ if one exists — never invent one.
42
+
43
+ 2. **Hub pass.** Perform `{{workflow:praxis-upkeep}}` for this repo. Its
44
+ `praxis check` output now includes member-anchor skips and the `Workspace:`
45
+ status line for this hub — read them, don't just exit-code them.
46
+
47
+ 3. **Workspace wiki currency.** Ensure the hub wiki has a system-map page (a
48
+ member table, the dependency edges, a contract-page index, cross-repo change
49
+ order, and an add-a-member checklist) consistent with `workspace:` in
50
+ `praxis.yaml` — the manifest is the source of truth for membership and
51
+ edges; the wiki holds the prose and contracts. Anchor member references with
52
+ `member:` anchors so `praxis check` trips on drift. This is wiki work: follow
53
+ `{{workflow:praxis-wiki}}`'s own conventions and confirmation gate before
54
+ creating or editing pages.
55
+
56
+ 4. **Member fan-out (report-first).** For each **cloned** member — each
57
+ **affected** cloned member only, under planning entry — produce a
58
+ per-member brief with `{{workflow:praxis-handoff}}` and delegate one
59
+ workstream per member — where the tool lacks subagent spawning, execute the
60
+ briefs sequentially instead. Every brief must name the resolved member root
61
+ (the hub root plus the member's declared `path`) and make the delegate's
62
+ first tool action use that root as its working directory; the delegate
63
+ confirms the root it used in its report. Each delegate reads that repo's own
64
+ `CLAUDE.md` and every file under `.claude/rules/` (Claude Code) or
65
+ `AGENTS.md` (Codex/agents-md) first, then `docs/wiki/index.md` when it
66
+ exists and the relevant pages those entrypoints identify, before inspecting
67
+ source.
68
+
69
+ When the focus is planning or an implementation question, do not stop at
70
+ methodology currency: state the concrete member-local question in the brief,
71
+ inspect the relevant implementation source and nearest tests, and return the
72
+ constraints, local validation commands, and unresolved risks with `file:line`
73
+ evidence. Keep the workstream in **audit mode**: run `praxis check` there,
74
+ assess instruction/wiki currency, and **return proposed edits without
75
+ applying them**. Also have it flag any duplicated cross-repo integration
76
+ prose that belongs in the hub's contract pages instead.
77
+
78
+ 5. **Edge-based staleness judgment.** For each member with changes since its
79
+ relevant contract page was last touched (compare via `git log`), walk
80
+ `edges` where that member is the producer (`from`) and name each downstream
81
+ member plus its contract page as *likely stale* — a candidate for review,
82
+ not proof.
83
+
84
+ 6. **Consolidated report + apply opt-in.** Report: hub status; a per-member
85
+ table (cloned / onboarded / check result); proposed edits per member;
86
+ likely-stale contract pages; and a recommendation of the form "run
87
+ `{{workflow:praxis-upkeep}}` in `<member>`" for any member whose own upkeep
88
+ needs running. On explicit user confirmation, re-delegate to apply the
89
+ confirmed subset per member, so the user can review each member's own git
90
+ diff. Never edit a member's files without that confirmation.
@@ -0,0 +1,14 @@
1
+ # Package manifest (docs/wiki/packages-and-emit.md, D53). Ships a standing
2
+ # reminder (rules.md) plus the /praxis-workspace-upkeep command
3
+ # (commands/workspace-upkeep.md): hub-sovereign upkeep for a Praxis workspace —
4
+ # a meta-repo with N independent git repos cloned beneath it, declared in this
5
+ # repo's own `workspace:` praxis.yaml section. Gated on the `workspace`
6
+ # pseudo-stack, which is derived from that section (never user-declarable in
7
+ # `stacks:`, src/manifest.ts/src/packages.ts), so it never lands in an ordinary
8
+ # repo. Requires wiki-memory/upkeep/session-handoff (D21): the command
9
+ # delegates to all three rather than restating their steps.
10
+ name: workspace
11
+ layer: layer2
12
+ stack: workspace
13
+ provides: [rules, commands]
14
+ requires: [wiki-memory, upkeep, session-handoff]
@@ -0,0 +1,29 @@
1
+ ## Workspace hub (Layer 2)
2
+
3
+ This repo is a Praxis **workspace hub**: `workspace:` in `praxis.yaml` declares
4
+ the member repos cloned beneath it and the dependency edges between them.
5
+
6
+ Cross-repo knowledge — dependency edges, API contracts between members,
7
+ cross-repo change order, the add-a-new-member checklist — lives in **this
8
+ repo's wiki**, never duplicated into member wikis; members carry at most prose
9
+ pointers up to it.
10
+
11
+ Trigger: after any change with cross-repo impact (a producer API change, a new
12
+ member, an edge change), or on a periodic sweep, run
13
+ `{{workflow:praxis-workspace-upkeep}}` rather than fixing hub/member drift
14
+ piecemeal.
15
+
16
+ Planning trigger: when planning a change that may cross member boundaries, or
17
+ when the plan needs member implementation details, enter through
18
+ `{{workflow:praxis-workspace-upkeep}}` before finalizing the hub plan. Fan out
19
+ one read-only planning workstream per affected cloned member. Every brief names
20
+ the resolved member root and makes the delegate's first tool action start there;
21
+ the delegate reads that member's `CLAUDE.md` and every file under
22
+ `.claude/rules/` (Claude Code) or `AGENTS.md` (Codex/agents-md), plus
23
+ `docs/wiki/index.md` and relevant linked pages when present, then inspects the
24
+ implementation source and nearest tests. Synthesize the returned constraints,
25
+ validation commands, risks, and `file:line` evidence in the hub — never infer
26
+ member implementation from hub prose alone.
27
+
28
+ Sovereignty: never edit a member repo's files from the hub uninvited — audit,
29
+ propose, and apply only what the user confirms.