@guiho/runx 0.4.1 → 0.5.1

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 (63) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/DOCS.md +24 -4
  3. package/README.md +6 -1
  4. package/devops/build-binaries.ts +3 -3
  5. package/devops/devops.xdocs.md +9 -6
  6. package/devops/extract-release-notes.spec.ts +54 -0
  7. package/devops/extract-release-notes.ts +40 -0
  8. package/devops/install.ps1 +29 -6
  9. package/devops/install.sh +36 -11
  10. package/devops/installers.spec.ts +152 -5
  11. package/devops/verify-release-assets.ts +14 -0
  12. package/docs/architecture/architecture.xdocs.md +2 -1
  13. package/docs/architecture/cli-architecture.md +18 -9
  14. package/docs/decisions/decisions.xdocs.md +4 -0
  15. package/docs/decisions/markdown-release-assets-and-version-scoped-notes.md +84 -0
  16. package/docs/plans/automatic-agent-maintenance.md +120 -0
  17. package/docs/plans/plans.xdocs.md +2 -0
  18. package/docs/plans/rfc-0034-cli-compliance-migration.md +17 -8
  19. package/docs/plans/upgrade-reliability-implementation.md +1 -1
  20. package/docs/reviews/implementation/automatic-agent-maintenance-review.md +63 -0
  21. package/docs/reviews/implementation/bash-installer-review.md +42 -0
  22. package/docs/reviews/implementation/implementation.xdocs.md +10 -0
  23. package/docs/reviews/implementation/rfc-0034-cli-compliance-migration-review.md +5 -2
  24. package/docs/reviews/implementation/unicode-help-tree-review.md +41 -0
  25. package/docs/reviews/implementation/upgrade-reliability-issue-12-review.md +62 -0
  26. package/docs/reviews/implementation/upgrade-reliability-issue-13-review.md +63 -0
  27. package/docs/reviews/plans/automatic-agent-maintenance-review.md +56 -0
  28. package/docs/reviews/plans/plans.xdocs.md +2 -0
  29. package/docs/superpowers/specs/2026-07-15-upgrade-reliability-design.md +1 -1
  30. package/docs/todo/automatic-agent-maintenance-implementation.md +55 -0
  31. package/docs/todo/automatic-agent-maintenance.md +86 -0
  32. package/docs/todo/bash-installer.md +45 -0
  33. package/docs/todo/rfc-0034-cli-compliance-migration-implementation.md +7 -2
  34. package/docs/todo/rfc-0034-cli-compliance-migration.md +7 -3
  35. package/docs/todo/todo.xdocs.md +10 -0
  36. package/docs/todo/unicode-help-tree.md +44 -0
  37. package/docs/todo/upgrade-reliability.md +51 -0
  38. package/docs/validation/automatic-agent-maintenance.md +63 -0
  39. package/docs/validation/bash-installer.md +55 -0
  40. package/docs/validation/rfc-0034-cli-compliance-migration.md +10 -4
  41. package/docs/validation/unicode-help-tree.md +43 -0
  42. package/docs/validation/upgrade-reliability-issue-12.md +74 -0
  43. package/docs/validation/upgrade-reliability-issue-13.md +72 -0
  44. package/docs/validation/upgrade-reliability.md +38 -99
  45. package/docs/validation/validation.xdocs.md +12 -2
  46. package/library/agent-maintenance.d.ts +19 -0
  47. package/library/agent-maintenance.d.ts.map +1 -0
  48. package/library/agent-maintenance.js +49 -0
  49. package/library/agents.d.ts +6 -1
  50. package/library/agents.d.ts.map +1 -1
  51. package/library/agents.js +58 -11
  52. package/library/cli.d.ts.map +1 -1
  53. package/library/cli.js +24 -7
  54. package/library/recovery.js +1 -1
  55. package/library/release-catalog.d.ts +2 -1
  56. package/library/release-catalog.d.ts.map +1 -1
  57. package/library/release-catalog.js +9 -1
  58. package/library/storage.d.ts +2 -1
  59. package/library/storage.d.ts.map +1 -1
  60. package/library/storage.js +13 -1
  61. package/package.json +1 -1
  62. package/skills/guiho-s-runx/SKILL.md +11 -0
  63. package/skills/guiho-s-runx/guiho-s-runx.xdocs.md +4 -1
@@ -20,13 +20,18 @@ owner: runx-architecture
20
20
 
21
21
  ## Flow
22
22
 
23
- `cli.ts` defines a Citty command tree. Citty parses options and positionals,
24
- resolves nested commands and aliases, and renders ordinary usage. A bounded
25
- command-map adapter preserves the legacy `runx <selector>` shorthand while
26
- known Citty commands retain precedence. Manifest commands use `manifest.ts` to
27
- discover the nearest `runx.yaml`, parse YAML, validate a strict TypeBox schema,
28
- and resolve a selector. `render.ts` presents text or JSON. `executor.ts` spawns
29
- exactly one configured shell command only for a real run.
23
+ `cli.ts` defines one Citty command tree. Citty parses options and positionals,
24
+ resolves nested commands, and renders usage. Manifest commands use
25
+ `configuration.ts` to resolve `runx.yaml` by explicit path, effective cwd, then
26
+ global fallback; TypeBox validates the complete shape. `render.ts` presents
27
+ text or JSON. `executor.ts` spawns exactly one configured shell command only for
28
+ a real `runx run`.
29
+
30
+ After an ordinary command routes through Citty, `agent-maintenance.ts` receives
31
+ the decoded effective cwd and detaches a hidden worker. The worker compares
32
+ embedded skill content with both global copies and atomically reconciles one
33
+ nearest `AGENTS.md` block. Explicit agent-resource and uninstall commands are
34
+ excluded so intentional removal is not reversed.
30
35
 
31
36
  ## Boundaries
32
37
 
@@ -34,8 +39,12 @@ exactly one configured shell command only for a real run.
34
39
  - Help, version, and CLI usage failures do not discover a manifest.
35
40
  - `source/flags.ts` no longer exists; RunX has no second token parser or manual
36
41
  execution router behind Citty.
37
- - `agents.ts` copies the embedded or packaged skill into the requested standard
38
- or Claude-compatible skill location.
42
+ - `agents.ts` owns explicit dual-tool actions plus idempotent, legacy-aware
43
+ automatic skill and instruction reconciliation.
44
+ - `storage.ts` performs same-directory temporary writes and atomic replacement
45
+ for automatic resource maintenance.
46
+ - Hidden update and agent-maintenance routes never appear in public help and
47
+ cannot recursively schedule themselves.
39
48
  - `self-management.ts` queries GitHub Releases and only replaces/removes a
40
49
  native executable, never a Bun development process.
41
50
  - Native builds register `embedded-resources.ts`, which includes the skill.
@@ -7,6 +7,7 @@ files:
7
7
  alpha-boundaries.md: Captures accepted alpha scope, safety, distribution, and compatibility decisions.
8
8
  citty-cli-migration.md: Defines the accepted full migration from handwritten parsing and routing to Citty.
9
9
  interactive-init-manifest.md: Defines interactive initialization, Semantic Versioning, the public group, and the scripts directory contract.
10
+ markdown-release-assets-and-version-scoped-notes.md: Defines .md agent release filenames, downloaded-resource validation, and exact-version idempotent GitHub Release notes.
10
11
  mirror-automatic-push.md: Defines automatic Mirror release pushes with a synchronized protected-main gate.
11
12
  npm-trusted-publishing.md: Defines the accepted npm OIDC publishing workflow and protected-branch patch-release trial.
12
13
  windows-self-upgrade.md: Defines synchronous Windows executable replacement, verification, rollback, and cleanup.
@@ -14,6 +15,7 @@ documents:
14
15
  alpha-boundaries.md: Decision record for RunX alpha boundaries.
15
16
  citty-cli-migration.md: Decision record for the complete Citty CLI parser and router migration.
16
17
  interactive-init-manifest.md: Accepted manifest and interactive initialization decision for runx init.
18
+ markdown-release-assets-and-version-scoped-notes.md: Accepted public asset filename, validation, and release-description policy.
17
19
  mirror-automatic-push.md: Accepted release-policy decision for Mirror push=true and protected delivery ordering.
18
20
  npm-trusted-publishing.md: Decision record for GitHub Actions npm trusted publishing and the first automated patch release.
19
21
  windows-self-upgrade.md: Accepted design for synchronous and recoverable Windows native self-upgrade.
@@ -25,6 +27,8 @@ keywords:
25
27
  - runx init
26
28
  - scripts directory
27
29
  - mirror push
30
+ - markdown release assets
31
+ - version-scoped release notes
28
32
  - windows self-upgrade
29
33
  flags: []
30
34
  status: stable
@@ -0,0 +1,84 @@
1
+ ---
2
+ name: RunX Markdown Release Assets And Version-Scoped Notes
3
+ purpose: Preserve the accepted RunX GitHub Release filename and release-description policy.
4
+ description: Records the project override requiring .md agent asset filenames and exact-version changelog sections for idempotent GitHub Release notes.
5
+ created: 2026-07-19
6
+ flags:
7
+ - accepted
8
+ - release-policy
9
+ tags:
10
+ - decisions
11
+ - releases
12
+ - cli
13
+ keywords:
14
+ - guiho-s-runx.md
15
+ - guiho-i-runx.md
16
+ - GitHub Release notes
17
+ - changelog extraction
18
+ owner: runx-decisions
19
+ ---
20
+
21
+ # RunX Markdown Release Assets And Version-Scoped Notes
22
+
23
+ ## Status
24
+
25
+ Accepted by the developer on 2026-07-19.
26
+
27
+ ## Context
28
+
29
+ The bundled RFC 0034 skill originally named the two Markdown release artifacts
30
+ without extensions. That makes their content type less obvious and conflicts
31
+ with the explicit RunX release contract chosen by the developer. The publish
32
+ workflow also passed the complete changelog to GitHub, causing one release to
33
+ describe unrelated versions.
34
+
35
+ ## Decision
36
+
37
+ Every RunX GitHub Release contains exactly fourteen assets: twelve native
38
+ binaries plus `guiho-s-runx.md` and `guiho-i-runx.md`.
39
+
40
+ The `.md` suffixes are public filename requirements. Installers download those
41
+ names, install the skill content as `SKILL.md`, and use the instruction asset
42
+ content for managed instruction blocks.
43
+
44
+ Release notes contain only the exact `## <version> - <date>` section from
45
+ `CHANGELOG.md`, ending before the next `## ` heading. Publishing fails closed
46
+ when the exact section is missing or empty. Rerunning a tag updates the existing
47
+ release notes before replacing its assets.
48
+
49
+ Downloaded agent artifacts are treated as untrusted release inputs. Installers
50
+ reject empty payloads, Windows executable headers, NUL-containing binary data,
51
+ invalid UTF-8, missing YAML frontmatter, and mismatched resource identities
52
+ before writing any global skill or project instruction file.
53
+
54
+ ## Alternatives Considered
55
+
56
+ - Extensionless agent assets: rejected because the developer explicitly
57
+ requires recognizable Markdown filenames.
58
+ - Full-changelog release notes: rejected because they include unrelated release
59
+ history.
60
+ - Creating notes only on first publish: rejected because reruns must repair
61
+ stale release descriptions idempotently.
62
+ - Trusting the filename extension alone: rejected because a `.md` download can
63
+ still contain an executable or corrupted payload.
64
+
65
+ ## Consequences
66
+
67
+ - RunX intentionally differs from the original extensionless RFC asset spelling.
68
+ - All build, verification, workflow, installer, test, and public documentation
69
+ surfaces must use the `.md` filenames.
70
+ - Every version tag requires an exact matching changelog heading before its
71
+ protected publish workflow can succeed.
72
+ - Installer validation must complete before any downloaded agent resource is
73
+ copied or applied.
74
+
75
+ ## Reversal Or Revisit Conditions
76
+
77
+ Revisit only through an explicit developer decision that changes the public
78
+ release contract and migrates all consumers together.
79
+
80
+ ## References
81
+
82
+ - [RFC migration plan](../plans/rfc-0034-cli-compliance-migration.md)
83
+ - [RFC task specification](../todo/rfc-0034-cli-compliance-migration.md)
84
+ - [RunX documentation](../../DOCS.md)
@@ -0,0 +1,120 @@
1
+ ---
2
+ name: RunX Automatic Agent Maintenance Plan
3
+ purpose: Define executable units for GitHub issue 11 automatic skill and AGENTS.md maintenance.
4
+ description: Sequences atomic resource reconciliation, a hidden worker, startup integration, regression coverage, documentation, review, and validation.
5
+ created: 2026-07-19
6
+ flags:
7
+ - approved
8
+ - implementation-ready
9
+ - implemented
10
+ tags:
11
+ - planning
12
+ - cli
13
+ - agents
14
+ keywords:
15
+ - RunX
16
+ - issue 11
17
+ - background worker
18
+ - atomic writes
19
+ - AGENTS.md
20
+ owner: runx-plans
21
+ ---
22
+
23
+ # RunX Automatic Agent Maintenance Plan
24
+
25
+ ## Outcome
26
+
27
+ Every ordinary RunX invocation schedules a hidden, non-blocking,
28
+ failure-isolated worker that reconciles the bundled `guiho-s-runx` skill in
29
+ both global tool locations and one compact managed block in the nearest
30
+ applicable `AGENTS.md`. Current resources remain untouched, stale or legacy
31
+ resources converge to bundled content, and foreground text, JSON, help,
32
+ version, command execution, and exit behavior remain deterministic.
33
+
34
+ ## Authority
35
+
36
+ - GitHub issue [#11](https://github.com/CGuiho/runx/issues/11) is the accepted
37
+ behavior requirement.
38
+ - `guiho-a-0001-swe` coordinates execution.
39
+ - `guiho-s-0034-cli-engineer`, `guiho-s-0023-plan-executor`,
40
+ `guiho-s-0015-bun`, `guiho-s-0019-typescript`, `guiho-s-0011-typebox`, and
41
+ `guiho-s-xdocs` govern implementation.
42
+ - The approved RFC breaking boundary remains: the namespace is singular
43
+ `runx agent`; no plural compatibility alias will be restored.
44
+
45
+ ## Unit AM-01 - Atomic Reconciliation Primitives
46
+
47
+ - Goal: reconcile only missing or stale agent resources without partial writes.
48
+ - Expected files: `source/storage.ts`, `source/agents.ts`, colocated tests.
49
+ - Actions:
50
+ 1. Add same-directory temporary-file writes followed by atomic replacement.
51
+ 2. Compare both global skill targets with the bundled skill before writing.
52
+ 3. Find the nearest existing `AGENTS.md` from effective cwd; create one at
53
+ effective cwd only when no ancestor contains it.
54
+ 4. Replace current or legacy RunX blocks without duplicating them.
55
+ 5. Preserve user-authored content outside recognized markers.
56
+ - Acceptance:
57
+ - Missing and stale resources are repaired.
58
+ - Current resources report no change and are not rewritten.
59
+ - Concurrent reconciliations converge to identical content.
60
+ - Failures do not leave a truncated destination.
61
+
62
+ ## Unit AM-02 - Hidden Worker Lifecycle
63
+
64
+ - Goal: schedule maintenance without blocking or polluting foreground output.
65
+ - Expected files: new `source/agent-maintenance.ts`, `source/cli.ts`, tests.
66
+ - Dependencies: AM-01.
67
+ - Actions:
68
+ 1. Add one hidden exact worker route absent from public help/tree/docs.
69
+ 2. Pass the Citty-decoded effective cwd to the detached worker.
70
+ 3. Disable recursive scheduling in the worker process.
71
+ 4. Ignore worker stdout/stderr and isolate spawn/worker failures.
72
+ 5. Exclude explicit agent-resource and uninstall commands so explicit removal
73
+ is not immediately reversed.
74
+ - Acceptance:
75
+ - Plain RunX and ordinary catalog commands schedule the worker.
76
+ - The foreground does not wait for reconciliation.
77
+ - Text and JSON output and exit codes remain unchanged.
78
+ - Hidden worker execution cannot recursively spawn itself.
79
+
80
+ ## Unit AM-03 - Acceptance Regressions
81
+
82
+ - Goal: prove every issue criterion with temporary homes and projects.
83
+ - Expected files: `source/agent-maintenance.spec.ts`, `source/cli.spec.ts`.
84
+ - Dependencies: AM-01 and AM-02.
85
+ - Tests:
86
+ - missing, current, and outdated skills in both global tool locations;
87
+ - nearest `AGENTS.md` insertion and stale/legacy block replacement;
88
+ - preservation of user-authored content;
89
+ - two concurrent reconciliations;
90
+ - worker spawn failure and maintenance failure isolation;
91
+ - plain invocation scheduling and effective `--cwd` routing;
92
+ - stable text/JSON output and hidden help tree.
93
+ - Acceptance:
94
+ - The full suite exits cleanly with no real global mutation.
95
+
96
+ ## Unit AM-04 - Documentation, Review, And Validation
97
+
98
+ - Goal: close durable state and provide issue-resolution evidence.
99
+ - Dependencies: AM-03.
100
+ - Actions:
101
+ 1. Document automatic behavior and explicit-command boundaries.
102
+ 2. Review implementation against every issue checkbox.
103
+ 3. Run typecheck, tests, build, native smoke, prohibited-import scan, and
104
+ narrow XDocs checks.
105
+ 4. Commit one file at a time, push main, comment factual evidence on issue
106
+ #11, and close only after GitHub contains the implementation.
107
+ - Acceptance:
108
+ - No review finding remains.
109
+ - Pushed commit and validation evidence precede closure.
110
+
111
+ ## Release Boundary
112
+
113
+ This externally observable capability requires a final Mirror `minor` plan
114
+ after all open issues are resolved. Do not version or tag during this unit.
115
+
116
+ ## References
117
+
118
+ - [Task specification](../todo/automatic-agent-maintenance.md)
119
+ - [CLI architecture](../architecture/cli-architecture.md)
120
+ - [RFC migration plan](./rfc-0034-cli-compliance-migration.md)
@@ -5,6 +5,7 @@ parent: runx-docs
5
5
  children: []
6
6
  files:
7
7
  alpha-implementation.md: Breaks the accepted alpha into implementation and validation units.
8
+ automatic-agent-maintenance.md: Implements non-blocking automatic global skill and nearest AGENTS.md reconciliation for issue 11.
8
9
  citty-cli-migration.md: Executes the full Citty command-tree migration, compatibility validation, protected delivery, and patch release.
9
10
  interactive-init-manifest.md: Sequences the SemVer manifest, public group, scripts directory, and interactive initializer delivery.
10
11
  mirror-automatic-push.md: Enables automatic Mirror release pushes with a synchronized protected-main safety gate.
@@ -14,6 +15,7 @@ files:
14
15
  upgrade-reliability-implementation.md: Sequences release discovery, streamed progress, transactional replacement, recovery, installers, and validation.
15
16
  documents:
16
17
  alpha-implementation.md: Plan used for the initial RunX implementation.
18
+ automatic-agent-maintenance.md: Approved automatic agent-maintenance implementation plan.
17
19
  citty-cli-migration.md: Active plan for replacing handwritten CLI parsing and routing with Citty and delivering its patch release.
18
20
  interactive-init-manifest.md: Approved implementation plan for the RunX interactive init manifest feature.
19
21
  mirror-automatic-push.md: Approved plan for configuring, validating, and merging Mirror push=true without applying another release.
@@ -447,13 +447,17 @@ execution session rather than assuming it remains active from an earlier unit.
447
447
  4. Validate integrity and architecture.
448
448
  5. Transactionally install and verify the binary.
449
449
  6. Add the global binary directory to PATH when missing.
450
- 7. Download/extract `guiho-s-runx` into both global skill locations.
451
- 8. Download `guiho-i-runx`, discover instruction files, and reconcile their
450
+ 7. Download `guiho-s-runx.md` and install it as `SKILL.md` in both global
451
+ skill locations.
452
+ 8. Download `guiho-i-runx.md`, discover instruction files, and reconcile their
452
453
  managed blocks.
453
- 9. Log every action and final `runx --version` verification.
454
+ 9. Reject empty, executable, binary, invalid UTF-8, missing-frontmatter, or
455
+ wrong-identity agent assets before any skill or instruction write.
456
+ 10. Log every action and final `runx --version` verification.
454
457
  - Acceptance:
455
458
  - Isolated Windows and POSIX installer tests cover success, fallback,
456
- corruption, rollback, PATH, both skills, instructions, and progress.
459
+ binary Markdown rejection, rollback, PATH, both skills, instructions, and
460
+ progress.
457
461
 
458
462
  ### Unit RX-13 - Replace The Npm Launcher With A Node-Compatible Bootstrap
459
463
 
@@ -494,18 +498,23 @@ execution session rather than assuming it remains active from an earlier unit.
494
498
  - `runx-windows-x64-baseline.exe`
495
499
  - `runx-windows-x64-modern.exe`
496
500
  - Agent asset names:
497
- - `guiho-s-runx`
498
- - `guiho-i-runx`
501
+ - `guiho-s-runx.md`
502
+ - `guiho-i-runx.md`
499
503
  - Actions:
500
504
  1. Replace every `macos` name and selector with `darwin`.
501
505
  2. Use Bun APIs in the binary builder rather than Node filesystem/path
502
506
  imports.
503
507
  3. Package the skill directory and instruction/prompt artifact reproducibly.
504
- 4. Upload only the fourteen expected assets.
505
- 5. Make CI fail for missing, duplicate, extra, wrongly suffixed, or legacy
508
+ 4. Treat the `.md` suffixes as part of both public agent-asset filenames.
509
+ 5. Extract only the exact version heading and body from `CHANGELOG.md` for
510
+ GitHub Release notes; fail closed if it is missing and update existing
511
+ releases idempotently.
512
+ 6. Upload only the fourteen expected assets.
513
+ 7. Make CI fail for missing, duplicate, extra, wrongly suffixed, or legacy
506
514
  assets.
507
515
  - Acceptance:
508
516
  - Automated verification observes exactly fourteen unique names.
517
+ - Release notes exclude changelog frontmatter and every older/newer version.
509
518
 
510
519
  ### Unit RX-15 - Align Documentation, Skill, TODO, And XDocs
511
520
 
@@ -5,7 +5,7 @@ description: Implementation plan for release discovery, progress reporting, tran
5
5
  created: 2026-07-15
6
6
  flags:
7
7
  - approved
8
- - in-progress
8
+ - implemented
9
9
  tags:
10
10
  - plans
11
11
  - cli
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: RunX Automatic Agent Maintenance Implementation Review
3
+ purpose: Review the delivered GitHub issue 11 behavior against every accepted criterion.
4
+ description: Findings-first review of atomic reconciliation, nearest instructions, worker isolation, tests, docs, and release boundaries.
5
+ created: 2026-07-19
6
+ flags:
7
+ - accepted
8
+ tags:
9
+ - review
10
+ - cli
11
+ - agents
12
+ keywords:
13
+ - RunX
14
+ - issue 11
15
+ - implementation review
16
+ owner: runx-implementation-reviews
17
+ ---
18
+
19
+ # RunX Automatic Agent Maintenance Implementation Review
20
+
21
+ ## Verdict
22
+
23
+ Accepted.
24
+
25
+ ## Findings
26
+
27
+ No blocker, high, medium, or low finding remains.
28
+
29
+ Review identified one boundary worth making explicit: automatic maintenance
30
+ must never reverse a deliberate `runx agent ... remove|uninstall` or
31
+ `runx uninstall` action. The final CLI test executes both explicit agent
32
+ removals with maintenance enabled, waits beyond worker startup, and proves the
33
+ resources remain absent.
34
+
35
+ ## Acceptance Criteria Check
36
+
37
+ - Missing and stale skills in both global locations: accepted.
38
+ - Current skills are compared and not rewritten: accepted.
39
+ - Nearest ancestor `AGENTS.md` selection and cwd fallback: accepted.
40
+ - Current and legacy block convergence with user-content preservation:
41
+ accepted.
42
+ - Same-directory temporary writes and failed-write cleanup: accepted.
43
+ - Concurrent-worker convergence: accepted.
44
+ - Hidden exact worker route and TypeBox input decoding: accepted.
45
+ - Detached ignored streams, recursion prevention, and spawn isolation:
46
+ accepted.
47
+ - Citty-decoded effective cwd: accepted.
48
+ - Text, JSON, help, version, and exit behavior stability: accepted.
49
+ - Explicit agent-resource and executable removal boundaries: accepted.
50
+ - Documentation, XDocs, native builds, and exact assets: accepted.
51
+
52
+ ## Residual Risk
53
+
54
+ The worker intentionally reports no foreground failure. Filesystem permission
55
+ errors therefore remain silent and are retried by a later ordinary invocation.
56
+ This is the required failure-isolation contract, not an unresolved finding.
57
+
58
+ ## References
59
+
60
+ - [Implementation plan](../../plans/automatic-agent-maintenance.md)
61
+ - [Implementation notes](../../todo/automatic-agent-maintenance-implementation.md)
62
+ - [Validation](../../validation/automatic-agent-maintenance.md)
63
+ - [GitHub issue #11](https://github.com/CGuiho/runx/issues/11)
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: RunX Bash Installer Implementation Review
3
+ purpose: Review the GitHub issue 15 Bash conversion against all invocation and test surfaces.
4
+ description: Findings-first review of shebang, strict mode, recovery commands, docs, source-only piping, exact versions, and executable verification.
5
+ created: 2026-07-19
6
+ flags:
7
+ - accepted
8
+ tags:
9
+ - review
10
+ - installer
11
+ - bash
12
+ keywords:
13
+ - RunX
14
+ - issue 15
15
+ - install.sh
16
+ owner: runx-implementation-reviews
17
+ ---
18
+
19
+ # RunX Bash Installer Implementation Review
20
+
21
+ ## Verdict
22
+
23
+ Accepted.
24
+
25
+ ## Findings
26
+
27
+ The current installer no longer contained the historical invalid
28
+ `set -o pipefail` under `sh`, but the public shebang, README command, and
29
+ recovery generator still selected `sh`. That did not satisfy the issue title.
30
+
31
+ All canonical surfaces now select Bash. Strict mode is enabled, unset `SHELL`
32
+ is handled safely, and a real Bash runtime validates syntax, piped source-only
33
+ startup, exact stable/prerelease normalization, and executable version
34
+ verification.
35
+
36
+ No blocker, high, medium, or low finding remains.
37
+
38
+ ## References
39
+
40
+ - [Task specification](../../todo/bash-installer.md)
41
+ - [Validation](../../validation/bash-installer.md)
42
+ - [GitHub issue #15](https://github.com/CGuiho/runx/issues/15)
@@ -4,15 +4,25 @@ description: Delivery-readiness reviews of implemented RunX plans and behavior c
4
4
  parent: runx-reviews
5
5
  children: []
6
6
  files:
7
+ bash-installer-review.md: Accepts the canonical Bash shebang, strict mode, recovery invocation, and executable shell tests for GitHub issue 15.
7
8
  citty-cli-migration-review.md: Reviews the implemented Citty command tree, compatibility adapter, tests, documentation, packaging, and release readiness.
8
9
  interactive-init-manifest-review.md: Reviews the implemented RunX initializer, strict manifest contract, tests, documentation, and delivery readiness.
9
10
  windows-self-upgrade-review.md: Reviews synchronous Windows replacement, rollback, cleanup, tests, CI coverage, and release readiness.
10
11
  rfc-0034-cli-compliance-migration-review.md: Accepts the RFC 0034 migration after independent upgrade-routing, cached-notice, prompt-output, asset, and release-readiness corrections.
12
+ automatic-agent-maintenance-review.md: Accepts atomic global skill and nearest AGENTS.md reconciliation, detached failure isolation, command boundaries, and regression evidence.
13
+ upgrade-reliability-issue-12-review.md: Accepts synchronous verified replacement and the corrected complete, single-document release listing for GitHub issue 12.
14
+ upgrade-reliability-issue-13-review.md: Accepts exact recovery across all outcomes and executable direct-installer version verification for GitHub issue 13.
15
+ unicode-help-tree-review.md: Accepts the Unicode nested and aligned help tree plus explicit legacy ASCII regression coverage for GitHub issue 17.
11
16
  documents:
17
+ bash-installer-review.md: Accepted implementation review for the RunX Bash installer.
12
18
  citty-cli-migration-review.md: Accepted implementation review for the full Citty CLI migration.
13
19
  interactive-init-manifest-review.md: Accepted implementation review for the RunX interactive init manifest feature.
14
20
  windows-self-upgrade-review.md: Accepted implementation review for the Windows native self-upgrade fix.
15
21
  rfc-0034-cli-compliance-migration-review.md: Accepted implementation and independent correction review for RX-01 through RX-16.
22
+ automatic-agent-maintenance-review.md: Accepted implementation review for GitHub issue 11 automatic agent maintenance.
23
+ upgrade-reliability-issue-12-review.md: Accepted implementation review for GitHub issue 12 upgrade reliability.
24
+ upgrade-reliability-issue-13-review.md: Accepted implementation review for GitHub issue 13 recovery reliability.
25
+ unicode-help-tree-review.md: Accepted implementation review for the RunX Unicode help tree.
16
26
  tags:
17
27
  - reviews
18
28
  - implementation
@@ -51,8 +51,11 @@ cover each path.
51
51
  - Output/exit codes and delegated exit preservation: accepted.
52
52
  - Upgrade selection, catalog, replacement, rollback, and reconciliation:
53
53
  accepted.
54
- - Direct installers and Node-only npm bootstrap: accepted.
55
- - Twelve native binaries plus two named agent assets: accepted.
54
+ - Direct installers, including downloaded Markdown identity/binary validation,
55
+ and Node-only npm bootstrap: accepted.
56
+ - Twelve native binaries plus `guiho-s-runx.md` and `guiho-i-runx.md`: accepted.
57
+ - Exact-version GitHub Release note extraction and idempotent note refresh:
58
+ accepted.
56
59
  - Docs, TODO, xdocs, tests, and build evidence: accepted.
57
60
 
58
61
  ## Residual Risk
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: RunX Unicode Help Tree Implementation Review
3
+ purpose: Review current help rendering against GitHub issue 17.
4
+ description: Findings-first review of Unicode branches, nesting, alignment, descriptions, depth, hidden routes, and regression coverage.
5
+ created: 2026-07-19
6
+ flags:
7
+ - accepted
8
+ tags:
9
+ - review
10
+ - cli
11
+ - help
12
+ keywords:
13
+ - RunX
14
+ - issue 17
15
+ - help tree
16
+ owner: runx-implementation-reviews
17
+ ---
18
+
19
+ # RunX Unicode Help Tree Implementation Review
20
+
21
+ ## Verdict
22
+
23
+ Accepted.
24
+
25
+ ## Findings
26
+
27
+ The current Citty-based renderer already implemented the requested visual
28
+ behavior. The remaining gap was explicit regression coverage: the broad help
29
+ test checked only the header and one depth-limited branch.
30
+
31
+ The strengthened CLI test now asserts both branch endings, a nested vertical
32
+ guide, description alignment, and absence of the legacy ASCII `|-` form. No
33
+ renderer change was required.
34
+
35
+ No blocker, high, medium, or low finding remains.
36
+
37
+ ## References
38
+
39
+ - [Task specification](../../todo/unicode-help-tree.md)
40
+ - [Validation](../../validation/unicode-help-tree.md)
41
+ - [GitHub issue #17](https://github.com/CGuiho/runx/issues/17)
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: RunX Upgrade Reliability Issue 12 Implementation Review
3
+ purpose: Review current-main self-upgrade and complete release listing behavior against GitHub issue 12.
4
+ description: Findings-first review of synchronous replacement, rollback, output ordering, complete catalog routing, JSON, tests, and delivery readiness.
5
+ created: 2026-07-19
6
+ flags:
7
+ - accepted
8
+ tags:
9
+ - review
10
+ - cli
11
+ - reliability
12
+ keywords:
13
+ - RunX
14
+ - issue 12
15
+ - upgrade list
16
+ - transactional replacement
17
+ owner: runx-implementation-reviews
18
+ ---
19
+
20
+ # RunX Upgrade Reliability Issue 12 Implementation Review
21
+
22
+ ## Verdict
23
+
24
+ Accepted after correction.
25
+
26
+ ## Findings
27
+
28
+ Two public-list findings were corrected before acceptance:
29
+
30
+ - the default view truncated the complete release catalog to twenty entries and
31
+ hid prereleases unless `--pre-releases` was supplied;
32
+ - Citty executed the selected `upgrade list` leaf and then also executed the
33
+ parent `upgrade` action, appending a second JSON document and failure result.
34
+
35
+ The default list now returns every normalized published release, including
36
+ labeled prereleases. Pagination occurs only when the user explicitly supplies
37
+ `--page` or `--per-page`. The parent action checks the resolved Citty command
38
+ identity and does not execute after `upgrade list` or `upgrade check`.
39
+
40
+ No blocker, high, medium, or low finding remains.
41
+
42
+ ## Acceptance Criteria Check
43
+
44
+ - Immediate canonical replacement before success: accepted.
45
+ - Exact canonical `--version` verification: accepted.
46
+ - Backup rollback on replacement or verification failure: accepted.
47
+ - Mapped Windows executable replacement and deferred cleanup only: accepted.
48
+ - Visible plan and ordered download/validate/replace/verify phases: accepted.
49
+ - Every GitHub release page, SemVer order, channels, dates, current/latest, and
50
+ missing compatible assets: accepted.
51
+ - Complete prerelease-inclusive default list: accepted after correction.
52
+ - One parseable JSON document with equivalent metadata: accepted after
53
+ correction.
54
+ - Windows swap, permission/rename failure, rollback, version mismatch,
55
+ pagination, labels, and missing-asset regressions: accepted.
56
+
57
+ ## References
58
+
59
+ - [Approved design](../../superpowers/specs/2026-07-15-upgrade-reliability-design.md)
60
+ - [Implementation plan](../../plans/upgrade-reliability-implementation.md)
61
+ - [Validation](../../validation/upgrade-reliability-issue-12.md)
62
+ - [GitHub issue #12](https://github.com/CGuiho/runx/issues/12)
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: RunX Upgrade Reliability Issue 13 Implementation Review
3
+ purpose: Review exact-version recovery and installer behavior against GitHub issue 13.
4
+ description: Findings-first review of recovery coverage, target pinning, separate stop commands, installer version verification, JSON, and delivery readiness.
5
+ created: 2026-07-19
6
+ flags:
7
+ - accepted
8
+ tags:
9
+ - review
10
+ - cli
11
+ - reliability
12
+ keywords:
13
+ - RunX
14
+ - issue 13
15
+ - recovery install
16
+ - exact version
17
+ owner: runx-implementation-reviews
18
+ ---
19
+
20
+ # RunX Upgrade Reliability Issue 13 Implementation Review
21
+
22
+ ## Verdict
23
+
24
+ Accepted.
25
+
26
+ ## Findings
27
+
28
+ No blocker, high, medium, or low implementation finding remains.
29
+
30
+ The implementation already generated recovery from the resolved plan before
31
+ mutation and retained it through failure envelopes. This audit strengthened
32
+ the release gate with an explicit matrix for all five terminal outcomes and an
33
+ executable PowerShell installer test for stable/prerelease normalization,
34
+ successful `--version` verification, and mismatch rejection.
35
+
36
+ ## Acceptance Criteria Check
37
+
38
+ - Recovery after success, failure, already current, dry run, and rollback:
39
+ accepted.
40
+ - Exact stable and prerelease target preservation: accepted.
41
+ - Copyable installer command generated from supported installer flags:
42
+ accepted.
43
+ - Separate Windows and POSIX process-stop commands: accepted.
44
+ - Fallback-current repair when discovery cannot resolve a target: accepted.
45
+ - Text ordering and JSON recovery parity: accepted.
46
+ - Direct installer version arguments, canonical verification, and nonzero
47
+ mismatch behavior: accepted.
48
+ - Download, replacement, verification, and already-current regressions:
49
+ accepted.
50
+
51
+ ## Platform Note
52
+
53
+ The current Windows gate executes PowerShell normalization and version
54
+ verification directly. Git for Windows Bash executes the Linux/macOS installer
55
+ syntax, piped startup, exact-version normalization, and executable verification
56
+ locally; Ubuntu CI remains the native Linux gate.
57
+
58
+ ## References
59
+
60
+ - [Approved design](../../superpowers/specs/2026-07-15-upgrade-reliability-design.md)
61
+ - [Implementation plan](../../plans/upgrade-reliability-implementation.md)
62
+ - [Validation](../../validation/upgrade-reliability-issue-13.md)
63
+ - [GitHub issue #13](https://github.com/CGuiho/runx/issues/13)