@guiho/runx 0.4.0 → 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.
- package/CHANGELOG.md +52 -0
- package/DOCS.md +24 -4
- package/README.md +6 -1
- package/devops/build-binaries.ts +3 -3
- package/devops/devops.xdocs.md +9 -6
- package/devops/extract-release-notes.spec.ts +54 -0
- package/devops/extract-release-notes.ts +40 -0
- package/devops/install.ps1 +29 -6
- package/devops/install.sh +36 -11
- package/devops/installers.spec.ts +152 -5
- package/devops/verify-release-assets.ts +14 -0
- package/docs/architecture/architecture.xdocs.md +2 -1
- package/docs/architecture/cli-architecture.md +18 -9
- package/docs/decisions/decisions.xdocs.md +4 -0
- package/docs/decisions/markdown-release-assets-and-version-scoped-notes.md +84 -0
- package/docs/plans/automatic-agent-maintenance.md +120 -0
- package/docs/plans/plans.xdocs.md +2 -0
- package/docs/plans/rfc-0034-cli-compliance-migration.md +17 -8
- package/docs/plans/upgrade-reliability-implementation.md +1 -1
- package/docs/reviews/implementation/automatic-agent-maintenance-review.md +63 -0
- package/docs/reviews/implementation/bash-installer-review.md +42 -0
- package/docs/reviews/implementation/implementation.xdocs.md +12 -2
- package/docs/reviews/implementation/rfc-0034-cli-compliance-migration-review.md +18 -5
- package/docs/reviews/implementation/unicode-help-tree-review.md +41 -0
- package/docs/reviews/implementation/upgrade-reliability-issue-12-review.md +62 -0
- package/docs/reviews/implementation/upgrade-reliability-issue-13-review.md +63 -0
- package/docs/reviews/plans/automatic-agent-maintenance-review.md +56 -0
- package/docs/reviews/plans/plans.xdocs.md +2 -0
- package/docs/superpowers/specs/2026-07-15-upgrade-reliability-design.md +1 -1
- package/docs/todo/automatic-agent-maintenance-implementation.md +55 -0
- package/docs/todo/automatic-agent-maintenance.md +86 -0
- package/docs/todo/bash-installer.md +45 -0
- package/docs/todo/rfc-0034-cli-compliance-migration-implementation.md +27 -3
- package/docs/todo/rfc-0034-cli-compliance-migration.md +9 -4
- package/docs/todo/todo.xdocs.md +12 -2
- package/docs/todo/unicode-help-tree.md +44 -0
- package/docs/todo/upgrade-reliability.md +51 -0
- package/docs/validation/automatic-agent-maintenance.md +63 -0
- package/docs/validation/bash-installer.md +55 -0
- package/docs/validation/rfc-0034-cli-compliance-migration.md +29 -7
- package/docs/validation/unicode-help-tree.md +43 -0
- package/docs/validation/upgrade-reliability-issue-12.md +74 -0
- package/docs/validation/upgrade-reliability-issue-13.md +72 -0
- package/docs/validation/upgrade-reliability.md +38 -99
- package/docs/validation/validation.xdocs.md +14 -4
- package/library/agent-maintenance.d.ts +19 -0
- package/library/agent-maintenance.d.ts.map +1 -0
- package/library/agent-maintenance.js +49 -0
- package/library/agents.d.ts +8 -2
- package/library/agents.d.ts.map +1 -1
- package/library/agents.js +58 -11
- package/library/cli.d.ts.map +1 -1
- package/library/cli.js +50 -15
- package/library/recovery.js +1 -1
- package/library/release-catalog.d.ts +2 -1
- package/library/release-catalog.d.ts.map +1 -1
- package/library/release-catalog.js +9 -1
- package/library/storage.d.ts +2 -1
- package/library/storage.d.ts.map +1 -1
- package/library/storage.js +13 -1
- package/package.json +1 -1
- package/skills/guiho-s-runx/SKILL.md +11 -0
- 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
|
|
24
|
-
resolves nested commands
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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`
|
|
38
|
-
|
|
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
|
|
451
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
505
|
-
5.
|
|
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
|
|
|
@@ -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
|
-
rfc-0034-cli-compliance-migration-review.md: Accepts the
|
|
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
|
-
rfc-0034-cli-compliance-migration-review.md: Accepted implementation review for RX-01 through RX-16.
|
|
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
|
|
@@ -31,6 +31,15 @@ JSON output, directory existence checking initially rejected valid command
|
|
|
31
31
|
working directories, and legacy Windows cleanup tests waited indefinitely.
|
|
32
32
|
Focused tests now cover each corrected behavior.
|
|
33
33
|
|
|
34
|
+
An independent post-release audit then found and corrected three additional
|
|
35
|
+
contract defects: the public upgrade flags were unreachable through the Citty
|
|
36
|
+
group and root `--version` intercepted the nested version selector;
|
|
37
|
+
no-argument startup skipped the decoded cached update notice; and text-mode
|
|
38
|
+
prompt names rendered as a JSON array. The corrected CLI routes all upgrade
|
|
39
|
+
flags through `runx upgrade`, prints a cached notice before the banner without
|
|
40
|
+
network work, and prints raw names one per line. Live-routing regression tests
|
|
41
|
+
cover each path.
|
|
42
|
+
|
|
34
43
|
## Acceptance Criteria Check
|
|
35
44
|
|
|
36
45
|
- Mandatory Bun, TypeScript, Citty, and TypeBox stack: accepted.
|
|
@@ -42,15 +51,19 @@ Focused tests now cover each corrected behavior.
|
|
|
42
51
|
- Output/exit codes and delegated exit preservation: accepted.
|
|
43
52
|
- Upgrade selection, catalog, replacement, rollback, and reconciliation:
|
|
44
53
|
accepted.
|
|
45
|
-
- Direct installers
|
|
46
|
-
-
|
|
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.
|
|
47
59
|
- Docs, TODO, xdocs, tests, and build evidence: accepted.
|
|
48
60
|
|
|
49
61
|
## Residual Risk
|
|
50
62
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
63
|
+
Package publication and GitHub Release creation remain tag-triggered workflow
|
|
64
|
+
effects rather than direct local actions. The patch release validates the
|
|
65
|
+
workflow inputs and exact asset set locally; the protected production workflow
|
|
66
|
+
still owns publication.
|
|
54
67
|
|
|
55
68
|
## References
|
|
56
69
|
|
|
@@ -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)
|