@laitszkin/apollo-toolkit 2.11.3 → 2.12.0

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/AGENTS.md CHANGED
@@ -29,6 +29,7 @@ This repository enables users to install and run a curated set of reusable agent
29
29
  - Users can propose product features from an existing codebase and publish accepted proposals.
30
30
  - Users can discover reproducible edge-case risks and report prioritized hardening gaps.
31
31
  - Users can read, filter, and inspect remote GitHub issues before planning follow-up work.
32
+ - Users can resolve a GitHub issue end-to-end and push the fix directly to a requested branch without opening a PR.
32
33
  - Users can run evidence-first application security audits focused on confirmed vulnerabilities.
33
34
  - Users can learn new or improved skills from recent Codex conversation history.
34
35
  - Users can audit and maintain the skill catalog itself, including dependency classification and shared-skill extraction decisions.
@@ -40,6 +41,7 @@ This repository enables users to install and run a curated set of reusable agent
40
41
  - Users can prepare and open open-source pull requests from existing changes.
41
42
  - Users can generate storyboard image sets from chapters, novels, articles, or scripts.
42
43
  - Users can configure OpenClaw from official documentation, including `~/.openclaw/openclaw.json`, skills loading, SecretRefs, CLI edits, and validation or repair workflows.
44
+ - Users can investigate production or local simulation runs, calibrate reusable presets, and fix toolchain realism gaps between harness behavior and expected on-chain behavior.
43
45
  - Users can record multi-account spending and balance changes in monthly Excel ledgers with summary analytics and charts.
44
46
  - Users can review the current git change set from an unbiased reviewer perspective to find abstraction opportunities and simplification candidates.
45
47
  - Users can process GitHub pull request review comments and resolve addressed threads.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,25 @@ All notable changes to this repository are documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [v2.12.0] - 2026-03-28
8
+
9
+ ### Added
10
+ - Add `agents` mode to install scripts for copying skills into `~/.agents/skills` directory, supporting agent-skill-compatible software.
11
+
12
+ ### Changed
13
+ - Strengthen `production-sim-debug` so simulation investigations must verify protocol-sensitive blame against official docs or upstream source, distinguish liquidation pipeline stages precisely, and explain quote-budget counts as attempts versus unique opportunities.
14
+
15
+ ## [v2.11.4] - 2026-03-27
16
+
17
+ ### Added
18
+ - Add `production-sim-debug` for investigating production or local simulation runs, separating harness realism gaps from runtime bugs, and validating fixes by rerunning the same bounded scenario.
19
+ - Add `ship-github-issue-fix` for taking a remote GitHub issue through implementation and direct push to a requested branch without opening a PR or performing release work.
20
+
21
+ ### Changed
22
+ - Update `read-github-issue` to prefer bundled issue scripts while falling back to raw `gh issue list` and `gh issue view` commands when repository-specific helpers are missing or fail.
23
+ - Strengthen `commit-and-push` and `version-release` so sequential git mutations must verify the remote branch tip and release tag before reporting success or publishing a release.
24
+ - Refresh repository capability docs and skill inventory to include direct issue-shipping and production simulation debugging workflows.
25
+
7
26
  ## [v2.11.3] - 2026-03-24
8
27
 
9
28
  ### Added
package/README.md CHANGED
@@ -35,6 +35,7 @@ A curated skill catalog for Codex, OpenClaw, and Trae with a managed installer t
35
35
  - open-source-pr-workflow
36
36
  - openai-text-to-image-storyboard
37
37
  - openclaw-configuration
38
+ - production-sim-debug
38
39
  - record-spending
39
40
  - resolve-review-comments
40
41
  - review-change-set
@@ -15,7 +15,7 @@ description: "Guide the agent to submit local changes with commit and push only
15
15
  ## Standards
16
16
 
17
17
  - Evidence: Inspect git state and classify the change set before deciding which quality gates apply.
18
- - Execution: Run the required quality-gate skills when applicable, convert completed spec sets into categorized project docs during submission, normalize non-standard project docs when needed, preserve staging intent, honor any explicit user-specified target branch, then commit and push without release steps.
18
+ - Execution: Run the required quality-gate skills when applicable, convert completed spec sets into categorized project docs during submission, normalize non-standard project docs when needed, preserve staging intent, honor any explicit user-specified target branch, then commit and push without release steps; run dependent git mutations sequentially and verify the remote branch actually contains the new local `HEAD` before reporting success.
19
19
  - Quality: Re-run relevant validation for runtime changes, keep project docs plus agent constraints synchronized before committing, and preserve unrelated local work safely when branch switching or post-push local sync is required; treat `archive-specs` outputs as the canonical project-doc structure when normalization is required.
20
20
  - Output: Produce a concise Conventional Commit, push it to the intended branch, and report any temporary stash/restore or local branch sync that was required.
21
21
 
@@ -72,6 +72,9 @@ Load only when needed:
72
72
  - Write a concise Conventional Commit message using `references/commit-messages.md`.
73
73
  9. Push
74
74
  - Push commit(s) to the intended branch.
75
+ - Do not overlap `git commit`, `git push`, branch switching, or post-push sync operations; wait for each mutation to finish before starting the next one.
76
+ - After pushing, verify the remote branch tip matches the local `HEAD`, for example by comparing `git rev-parse HEAD` with the target branch hash from `git rev-parse @{u}` or `git ls-remote --heads <remote> <branch>`.
77
+ - If the push result is ambiguous, out of order, or the hashes do not match, rerun the missing git step sequentially and re-check before reporting success.
75
78
  - Confirm the local branch state matches the user's requested destination when post-push synchronization was requested.
76
79
 
77
80
  ## Notes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@laitszkin/apollo-toolkit",
3
- "version": "2.11.3",
3
+ "version": "2.12.0",
4
4
  "description": "Apollo Toolkit npm installer for managed skill copying across Codex, OpenClaw, and Trae.",
5
5
  "license": "MIT",
6
6
  "author": "LaiTszKin",
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 LaiTszKin
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,91 @@
1
+ # Production Sim Debug
2
+
3
+ An agent skill for investigating production or local simulation runs when the observed behavior diverges from the intended market scenario or expected liquidation/remediation outcomes.
4
+
5
+ This skill helps agents reproduce a bounded simulation run, inspect the real preset and runtime artifacts, separate product bugs from local harness drift, and apply the smallest realistic fix before rerunning the same scenario.
6
+
7
+ ## What this skill provides
8
+
9
+ - A workflow for bounded production/local simulation diagnosis.
10
+ - A decision tree for separating runtime logic bugs from harness, stub, preset, and persistence issues.
11
+ - A repeatable way to audit the active run directory, logs, and event database before drawing conclusions.
12
+ - Guidance for turning recurring ad hoc scenarios into named presets and documented test cases.
13
+ - Emphasis on rerunning the same scenario after a fix instead of relying only on unit tests.
14
+
15
+ ## Repository structure
16
+
17
+ - `SKILL.md`: Main skill definition, workflow, and output contract.
18
+ - `agents/openai.yaml`: Agent interface metadata and default prompt.
19
+
20
+ ## Installation
21
+
22
+ 1. Clone this repository.
23
+ 2. Copy this folder to your Codex skills directory:
24
+
25
+ ```bash
26
+ mkdir -p "$CODEX_HOME/skills"
27
+ cp -R production-sim-debug "$CODEX_HOME/skills/production-sim-debug"
28
+ ```
29
+
30
+ ## Usage
31
+
32
+ Invoke the skill in your prompt:
33
+
34
+ ```text
35
+ Use $production-sim-debug to run this repository's production local simulation with the named preset for 5 minutes, explain why remediations or liquidations did not land, and fix any harness or runtime-alignment issues you confirm.
36
+ ```
37
+
38
+ Best results come from including:
39
+
40
+ - workspace path
41
+ - canonical simulation entrypoint
42
+ - preset or scenario name
43
+ - run duration
44
+ - expected market shape or success criteria
45
+ - the run directory to inspect, if it already exists
46
+ - whether toolchain fixes are in scope or the task is read-only
47
+
48
+ If the repository already has a named preset system, prefer using it instead of describing the scenario only in prose.
49
+
50
+ ## Example
51
+
52
+ ### Input prompt
53
+
54
+ ```text
55
+ Use $production-sim-debug for this repository.
56
+
57
+ Workspace: /workspace/pangu
58
+ Entrypoint: ./scripts/run-production-local-sim.sh stress-test-1
59
+ Duration: 5 minutes
60
+ Expectations:
61
+ - Jupiter free tier
62
+ - mostly oracle-blocked positions that can be unlocked by remediation
63
+ - some directly executable opportunities
64
+ - evidence-backed explanation for why liquidations did or did not land
65
+ ```
66
+
67
+ ### Expected response shape
68
+
69
+ ```text
70
+ 1) Scenario contract
71
+ - Named preset, duration, and run directory used.
72
+
73
+ 2) Observed outcomes
74
+ - Event-table counts, dominant skip reasons, and runtime stage reached.
75
+
76
+ 3) Root cause
77
+ - Whether the main blocker was product logic, quote budget, preset design, or harness/stub drift.
78
+
79
+ 4) Fixes applied
80
+ - Toolchain or runtime fixes with file paths.
81
+
82
+ 5) Validation
83
+ - Rerun or targeted tests proving the intended stage now executes.
84
+
85
+ 6) Remaining gaps
86
+ - Any realism differences still left between local simulation and chain behavior.
87
+ ```
88
+
89
+ ## License
90
+
91
+ MIT. See `LICENSE`.
@@ -0,0 +1,168 @@
1
+ ---
2
+ name: production-sim-debug
3
+ description: Investigate production or local simulation runs for runtime-toolchain drift, harness bugs, preset mistakes, unrealistic local stubs, or mismatches between expected and observed liquidation outcomes. Use when users ask to run bounded production simulations, explain why simulated liquidations or remediations did not happen, calibrate presets, or fix local simulation tooling so it better matches real on-chain behavior.
4
+ ---
5
+
6
+ # Production Sim Debug
7
+
8
+ ## Dependencies
9
+
10
+ - Required: `systematic-debug` for evidence-first root-cause analysis when a simulation shows failing or missing expected behavior.
11
+ - Conditional: `scheduled-runtime-health-check` when the user wants a bounded production/local simulation run executed and observed; `read-github-issue` when the requested simulation work is driven by a remote issue; `marginfi-development` when liquidation, health, receivership, or instruction-order conclusions depend on official marginfi docs/source; `jupiter-development` when swap, quote, routing, or rate-limit conclusions depend on official Jupiter docs; `open-github-issue` when confirmed toolchain gaps should be published.
12
+ - Optional: none.
13
+ - Fallback: If the relevant simulation entrypoint, preset, logs, or run artifacts cannot be found, stop and report the missing evidence instead of inferring behavior from stale docs or memory.
14
+
15
+ ## Standards
16
+
17
+ - Evidence: Base conclusions on the actual preset, runtime command, logs, SQLite event store, local stub responses, and the code paths that generated them.
18
+ - Execution: Reproduce with the exact scenario first, separate product logic failures from simulation-toolchain failures, make the smallest realistic toolchain fix, and rerun the same bounded scenario to validate.
19
+ - Quality: Prefer harness or stub fixes that improve realism over one-off scenario hacks, avoid duplicating existing workflow skills, and record reusable presets when a scenario becomes part of the regular test suite.
20
+ - Output: Return the scenario contract, observed outcomes, root-cause chain, fixes applied, validation evidence, and any remaining realism gaps.
21
+
22
+ ## Goal
23
+
24
+ Use this skill to debug simulation workflows where the repository exposes a production-like local run path, but the observed outcomes are distorted by presets, harness logic, local stubs, event persistence, or runtime scheduling constraints.
25
+
26
+ ## Workflow
27
+
28
+ ### 1) Lock the simulation contract before touching code
29
+
30
+ - Identify the exact entrypoint, preset, duration, runtime mode, and rate-limit tier the user expects.
31
+ - Read the preset or scenario definition from the repository before assuming what the test means.
32
+ - Capture the intended success criteria explicitly, such as:
33
+ - successful liquidation count
34
+ - remediation count
35
+ - oracle-block registration
36
+ - profit ranking behavior
37
+ - quote budget behavior
38
+ - If the scenario is ad hoc but likely to recur, prefer turning it into a named preset instead of leaving it as an undocumented shell invocation.
39
+
40
+ ### 2) Reproduce with the real bounded run path
41
+
42
+ - Use the same production/local simulation script the repository already treats as canonical.
43
+ - Prefer a bounded run window with a stable run name and output directory.
44
+ - Save and inspect the exact artifacts produced by that run:
45
+ - main runtime log
46
+ - actor or stub logs
47
+ - generated env/config files
48
+ - SQLite or other persistence outputs
49
+ - scenario manifest or preset-resolved settings
50
+ - Do not trust older run directories when the user asks about a new execution.
51
+
52
+ ### 3) Audit the artifact chain before diagnosing product logic
53
+
54
+ - Confirm that you are reading the correct database and log files for the active run.
55
+ - Verify that the event tables you expect are actually the ones written by the runtime.
56
+ - Check whether missing results come from:
57
+ - no candidate selection
58
+ - no worker completion
59
+ - planner failure
60
+ - event persistence mismatch
61
+ - reading the wrong file
62
+ - Treat this artifact audit as mandatory; repeated failures in the recent chats came from toolchain alignment errors before they came from liquidation logic.
63
+
64
+ ### 4) Separate product failures from toolchain realism failures
65
+
66
+ - When the suspected blocker touches protocol rules, instruction legality, quote semantics, or liquidation invariants, verify the claim against the relevant official docs or upstream source before assigning blame.
67
+ - For every major blocker, explicitly classify the result as one of:
68
+ - production bot problem
69
+ - simulation environment problem
70
+ - both
71
+ - Treat "both" as a first-class result when a bot bug and a local-harness realism gap are stacked in the same flow.
72
+
73
+ - Classify each blocker into one of these buckets:
74
+ - preset design mismatch
75
+ - runtime scheduling or budget behavior
76
+ - stub or mock response unrealism
77
+ - local validator or cloned-state setup drift
78
+ - account ordering / remaining-account mismatch
79
+ - event-generation or persistence bug
80
+ - genuine product logic bug
81
+ - If the symptom is caused by the local harness, fix the harness instead of masking it in runtime logic.
82
+ - If a local stub inflates or distorts profitability, preserve the runtime behavior and calibrate the stub.
83
+ - If a scenario intentionally stresses one dimension, make sure the harness is not accidentally stressing unrelated dimensions.
84
+
85
+ ### 4.1) Map the observed failure to the real pipeline stage
86
+
87
+ - Do not treat every `liquidation_event` row as evidence that the run reached verification or execution.
88
+ - Reconstruct the stage explicitly, such as:
89
+ - candidate discovery
90
+ - local estimate
91
+ - solver candidate quote
92
+ - verification or pre-submit re-quote
93
+ - simulation
94
+ - execution
95
+ - When logs or event rows expose `stage`, `bucket`, `reason`, or similar structured fields, use them to explain exactly where the attempt stopped.
96
+ - When the user is confused by counts, distinguish:
97
+ - unique positions
98
+ - candidate attempts
99
+ - quote attempts
100
+ - verification attempts
101
+ - executed liquidations
102
+
103
+ ### 4.2) Audit quote-budget behavior before calling the strategy broken
104
+
105
+ - Check whether a high quote count reflects many unique positions or repeated coarse/refinement exploration on the same few positions.
106
+ - Trace how the runtime reserves verification capacity versus non-verification capacity, and explain which bucket was exhausted.
107
+ - If the strategy relies on local oracle estimates before quoting, verify whether the admission threshold is merely "positive estimate" or something stricter before assuming those candidates were all strong.
108
+ - When quote pressure appears unreasonable, tie the explanation back to the actual solver-step count, coarse/refinement selection logic, and the number of cross-mint candidates in the run.
109
+
110
+ ### 5) Trace the full decision tree for missed liquidations or remediations
111
+
112
+ - Follow the candidate from discovery through:
113
+ - local profitability estimate
114
+ - health precheck
115
+ - oracle-block classification
116
+ - remediation registration and rearm
117
+ - quote admission
118
+ - quote calibration
119
+ - pre-submit verification
120
+ - final execution or skip reason
121
+ - When the runtime reports a generic or overloaded failure label, reopen the logs and derive a finer-grained breakdown before proposing fixes.
122
+ - Distinguish fail-closed behavior from broken behavior; not all skipped liquidations are bugs.
123
+
124
+ ### 6) Fix the narrowest realistic cause
125
+
126
+ - Prefer minimal fixes that improve realism or observability at the root cause:
127
+ - add preset support to shell tooling instead of hardcoding another branch
128
+ - make oracle-blocked paths avoid external quote I/O when a local estimate is sufficient
129
+ - make stubs preserve run-specific metadata instead of falling back to unrealistic defaults
130
+ - keep continuous oracle updates realistic without breaking the runtime's own core feeds
131
+ - Add or update regression tests when the bug is in the harness, runtime decision tree, or event persistence path.
132
+ - If the scenario becomes a durable benchmark, add or update the named preset and the developer docs in the same change.
133
+
134
+ ### 7) Re-run the same scenario and compare outcomes
135
+
136
+ - After the fix, rerun the same scenario or the shortest bounded version that still exercises the bug.
137
+ - Compare:
138
+ - event-table counts before and after
139
+ - dominant skip reasons before and after
140
+ - whether the runtime reaches the intended decision stage
141
+ - whether the harness still resembles the user’s requested market conditions
142
+ - Do not claim success based only on unit tests when the original issue was a simulation-toolchain integration problem.
143
+
144
+ ## Common failure patterns
145
+
146
+ - **Wrong artifact source**: the analyst inspects an older SQLite file or the wrong event database and concludes that runtime behavior is missing.
147
+ - **Preset says one thing, harness does another**: scenario names sound right, but the actual matrix or oracle mode does not match the user’s intent.
148
+ - **Stub realism drift**: local quote, swap, or oracle stubs distort pricing, accounts, or program IDs enough to create false failures or false profits.
149
+ - **Overloaded “unknown” failures**: logs contain structured reasons, but the first-pass analysis never decomposes them.
150
+ - **Continuous-mode self-sabotage**: a stress regime intended to stale pull oracles instead makes the runtime’s own primary feeds unusable.
151
+ - **Quote budget starvation**: local filtering improves behavior but still lets low-value cross-mint candidates consume scarce quote capacity before higher-value paths can finish.
152
+ - **Blame assigned too early**: the first visible error gets labeled as either bot or tooling before official docs, upstream source, and run artifacts confirm that attribution.
153
+ - **Phase confusion**: event counts are interpreted as verification or execution attempts even though the run stopped much earlier in candidate quote or pre-submit simulation.
154
+ - **Quote-count misread**: a large total quote count is mistaken for many distinct opportunities when the runtime actually spent repeated exploration quotes on a smaller set of positions.
155
+
156
+ ## Output checklist
157
+
158
+ - Name the exact scenario, preset, duration, and run directory.
159
+ - State whether the root cause was product logic, toolchain realism, or both.
160
+ - For protocol-sensitive issues, name the official docs or upstream source used to justify that attribution.
161
+ - Cite the artifact types used: preset, logs, SQLite tables, and code paths.
162
+ - Explain the failing stage in the liquidation pipeline and whether the key counts represent positions, attempts, quotes, or executed outcomes.
163
+ - Summarize the narrow fix and the regression test or rerun evidence.
164
+ - If the final scenario should be reused, state where the preset or docs were added.
165
+
166
+ ## Example invocation
167
+
168
+ `Use $production-sim-debug to run the repository's production local simulation for 5 minutes with the named preset, explain why liquidations did not land, and fix any local harness or runtime-alignment issues that make the simulation unrealistic.`
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Production Sim Debug"
3
+ short_description: "診斷 production/local simulation 工具鏈與結果失真"
4
+ default_prompt: "Use $production-sim-debug to investigate a production/local simulation run, explain why outcomes diverged, and fix the harness or runtime alignment if needed."
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: read-github-issue
3
- description: Read and search remote GitHub issues via GitHub CLI (`gh`). Use when users ask to list issues, filter issue candidates, inspect a specific issue with comments, or gather issue context before planning follow-up work.
3
+ description: Read and search remote GitHub issues via GitHub CLI (`gh`). Use when users ask to list issues, filter issue candidates, inspect a specific issue with comments, or gather issue context before planning follow-up work. Prefer the bundled scripts when they are present and working, but fall back to direct `gh issue list` / `gh issue view` commands when the scripts are missing or fail for repository-specific reasons.
4
4
  ---
5
5
 
6
6
  # Read GitHub Issue
@@ -10,12 +10,12 @@ description: Read and search remote GitHub issues via GitHub CLI (`gh`). Use whe
10
10
  - Required: none.
11
11
  - Conditional: none.
12
12
  - Optional: none.
13
- - Fallback: If `gh` is unavailable or unauthenticated, stop and report the exact blocked command instead of guessing repository state.
13
+ - Fallback: If the bundled scripts are missing or fail but `gh` is available, continue with raw `gh issue list` / `gh issue view`; only stop when `gh` itself is unavailable or unauthenticated.
14
14
 
15
15
  ## Standards
16
16
 
17
17
  - Evidence: Verify repository context first, then read remote issue data directly from `gh issue list` / `gh issue view` instead of paraphrasing from memory.
18
- - Execution: Confirm the target repo, find candidate issues with the bundled script, then inspect the chosen issue with comments and structured fields.
18
+ - Execution: Confirm the target repo, prefer the bundled scripts for deterministic output, then fall back to raw `gh` commands whenever the scripts are unavailable or broken in the target repository.
19
19
  - Quality: Keep the skill focused on issue discovery and retrieval only; do not embed any hardcoded fixing, branching, PR, or push workflow.
20
20
  - Output: Return candidate issues, selected issue details, comments summary, and any missing information needed before follow-up work.
21
21
 
@@ -47,6 +47,13 @@ python3 scripts/find_issues.py --limit 50 --state open
47
47
  - `--repo owner/name`
48
48
  - `--label bug`
49
49
  - `--search "panic in parser"`
50
+ - Raw `gh` fallback when the script is missing or broken:
51
+
52
+ ```bash
53
+ gh issue list --limit 50 --state open
54
+ ```
55
+
56
+ - Add `--repo <owner>/<repo>`, `--label <label>`, or `--search "<text>"` as needed.
50
57
  - If the issue target is still unclear, present top candidates and ask which issue number or URL should be inspected next.
51
58
 
52
59
  ### 3) Read a specific issue in detail
@@ -61,6 +68,13 @@ python3 scripts/read_issue.py 123 --comments
61
68
  - `--repo owner/name`
62
69
  - `--json`
63
70
  - `--comments`
71
+ - Raw `gh` fallback when the script is missing or broken:
72
+
73
+ ```bash
74
+ gh issue view 123 --comments
75
+ ```
76
+
77
+ - Use `--repo <owner>/<repo>` when targeting a different repository.
64
78
  - Use the returned title, body, labels, assignees, state, timestamps, and comments to summarize the issue precisely.
65
79
 
66
80
  ### 4) Summarize gaps before any follow-up action
@@ -75,9 +89,11 @@ python3 scripts/read_issue.py 123 --comments
75
89
  - Purpose: consistent remote issue listing via `gh issue list`.
76
90
  - Outputs a readable table by default, or JSON with `--output json`.
77
91
  - Uses only GitHub CLI so it reflects remote GitHub state.
92
+ - Treat it as a convenience wrapper, not a hard dependency.
78
93
 
79
94
  ### `scripts/read_issue.py`
80
95
 
81
96
  - Purpose: deterministic issue detail retrieval via `gh issue view`.
82
97
  - Outputs either a human-readable summary or full JSON for downstream automation.
83
98
  - Can include issue comments so the agent can read the latest discussion before taking any other step.
99
+ - Treat it as a convenience wrapper, not a hard dependency.
@@ -1,4 +1,4 @@
1
1
  interface:
2
2
  display_name: "Read GitHub Issue"
3
3
  short_description: "Read and search remote GitHub issues"
4
- default_prompt: "Use $read-github-issue to verify the target GitHub repository with gh, find candidate issues with the bundled issue-search script, inspect the selected issue with comments and structured fields, summarize the trustworthy issue context, and call out any missing details before any separate planning or implementation work."
4
+ default_prompt: "Use $read-github-issue to verify the target GitHub repository with gh, prefer the bundled issue scripts when they work, fall back to raw gh issue commands when they do not, inspect the selected issue with comments and structured fields, summarize the trustworthy issue context, and call out any missing details before any separate planning or implementation work."
@@ -9,18 +9,20 @@ $ErrorActionPreference = "Stop"
9
9
  function Show-Usage {
10
10
  @"
11
11
  Usage:
12
- ./scripts/install_skills.ps1 [codex|openclaw|trae|all]...
12
+ ./scripts/install_skills.ps1 [codex|openclaw|trae|agents|all]...
13
13
 
14
14
  Modes:
15
15
  codex Copy skills into ~/.codex/skills
16
16
  openclaw Copy skills into ~/.openclaw/workspace*/skills
17
17
  trae Copy skills into ~/.trae/skills
18
+ agents Copy skills into ~/.agents/skills (for agent-skill-compatible software)
18
19
  all Install all supported targets
19
20
 
20
21
  Optional environment overrides:
21
22
  CODEX_SKILLS_DIR Override codex skills destination path
22
23
  OPENCLAW_HOME Override openclaw home path
23
24
  TRAE_SKILLS_DIR Override trae skills destination path
25
+ AGENTS_SKILLS_DIR Override agents skills destination path
24
26
  APOLLO_TOOLKIT_HOME Override local install path used when repo root is unavailable
25
27
  APOLLO_TOOLKIT_REPO_URL Override git repository URL used when repo root is unavailable
26
28
  "@
@@ -126,8 +128,9 @@ function Resolve-Modes {
126
128
  Write-Host "1) codex (~/.codex/skills)"
127
129
  Write-Host "2) openclaw (~/.openclaw/workspace*/skills)"
128
130
  Write-Host "3) trae (~/.trae/skills)"
129
- Write-Host "4) all"
130
- $inputValue = Read-Host "Enter choice(s) [1-4]"
131
+ Write-Host "4) agents (~/.agents/skills)"
132
+ Write-Host "5) all"
133
+ $inputValue = Read-Host "Enter choice(s) [1-5]"
131
134
 
132
135
  foreach ($rawChoice in ($inputValue -split ",")) {
133
136
  $choice = $rawChoice.Trim()
@@ -135,10 +138,12 @@ function Resolve-Modes {
135
138
  "1" { Add-ModeOnce -Selected $selected -Mode "codex" }
136
139
  "2" { Add-ModeOnce -Selected $selected -Mode "openclaw" }
137
140
  "3" { Add-ModeOnce -Selected $selected -Mode "trae" }
138
- "4" {
141
+ "4" { Add-ModeOnce -Selected $selected -Mode "agents" }
142
+ "5" {
139
143
  Add-ModeOnce -Selected $selected -Mode "codex"
140
144
  Add-ModeOnce -Selected $selected -Mode "openclaw"
141
145
  Add-ModeOnce -Selected $selected -Mode "trae"
146
+ Add-ModeOnce -Selected $selected -Mode "agents"
142
147
  }
143
148
  default {
144
149
  throw "Invalid choice: $choice"
@@ -152,10 +157,12 @@ function Resolve-Modes {
152
157
  "codex" { Add-ModeOnce -Selected $selected -Mode "codex" }
153
158
  "openclaw" { Add-ModeOnce -Selected $selected -Mode "openclaw" }
154
159
  "trae" { Add-ModeOnce -Selected $selected -Mode "trae" }
160
+ "agents" { Add-ModeOnce -Selected $selected -Mode "agents" }
155
161
  "all" {
156
162
  Add-ModeOnce -Selected $selected -Mode "codex"
157
163
  Add-ModeOnce -Selected $selected -Mode "openclaw"
158
164
  Add-ModeOnce -Selected $selected -Mode "trae"
165
+ Add-ModeOnce -Selected $selected -Mode "agents"
159
166
  }
160
167
  default {
161
168
  Show-Usage
@@ -256,6 +263,22 @@ function Install-Trae {
256
263
  }
257
264
  }
258
265
 
266
+ function Install-Agents {
267
+ param([string[]]$SkillPaths)
268
+
269
+ $target = if ($env:AGENTS_SKILLS_DIR) {
270
+ $env:AGENTS_SKILLS_DIR
271
+ }
272
+ else {
273
+ Join-Path $HOME ".agents/skills"
274
+ }
275
+
276
+ Write-Host "Installing to agents: $target"
277
+ foreach ($src in $SkillPaths) {
278
+ Copy-Skill -Source $src -TargetRoot $target
279
+ }
280
+ }
281
+
259
282
  if ($Modes.Count -gt 0 -and ($Modes[0] -eq "-h" -or $Modes[0] -eq "--help")) {
260
283
  Show-Usage
261
284
  exit 0
@@ -269,6 +292,7 @@ foreach ($mode in $selectedModes) {
269
292
  "codex" { Install-Codex -SkillPaths $skillPaths }
270
293
  "openclaw" { Install-OpenClaw -SkillPaths $skillPaths }
271
294
  "trae" { Install-Trae -SkillPaths $skillPaths }
295
+ "agents" { Install-Agents -SkillPaths $skillPaths }
272
296
  default { throw "Unknown mode: $mode" }
273
297
  }
274
298
  }
@@ -4,18 +4,20 @@ set -euo pipefail
4
4
  usage() {
5
5
  cat <<"USAGE"
6
6
  Usage:
7
- ./scripts/install_skills.sh [codex|openclaw|trae|all]...
7
+ ./scripts/install_skills.sh [codex|openclaw|trae|agents|all]...
8
8
 
9
9
  Modes:
10
10
  codex Copy skills into ~/.codex/skills
11
11
  openclaw Copy skills into ~/.openclaw/workspace*/skills
12
12
  trae Copy skills into ~/.trae/skills
13
+ agents Copy skills into ~/.agents/skills (for agent-skill-compatible software)
13
14
  all Install all supported targets
14
15
 
15
16
  Optional environment overrides:
16
17
  CODEX_SKILLS_DIR Override codex skills destination path
17
18
  OPENCLAW_HOME Override openclaw home path
18
19
  TRAE_SKILLS_DIR Override trae skills destination path
20
+ AGENTS_SKILLS_DIR Override agents skills destination path
19
21
  APOLLO_TOOLKIT_HOME Override local install path used in curl/pipe mode
20
22
  APOLLO_TOOLKIT_REPO_URL Override git repository URL used in curl/pipe mode
21
23
  USAGE
@@ -135,6 +137,16 @@ install_trae() {
135
137
  done
136
138
  }
137
139
 
140
+ install_agents() {
141
+ local agents_skills_dir
142
+ agents_skills_dir="${AGENTS_SKILLS_DIR:-$HOME/.agents/skills}"
143
+
144
+ echo "Installing to agents: $agents_skills_dir"
145
+ for src in "${SKILL_PATHS[@]}"; do
146
+ replace_with_copy "$src" "$agents_skills_dir"
147
+ done
148
+ }
149
+
138
150
  add_mode_once() {
139
151
  local mode="$1"
140
152
  local existing
@@ -153,13 +165,14 @@ parse_mode() {
153
165
  local mode="$1"
154
166
 
155
167
  case "$mode" in
156
- codex|openclaw|trae)
168
+ codex|openclaw|trae|agents)
157
169
  add_mode_once "$mode"
158
170
  ;;
159
171
  all)
160
172
  add_mode_once "codex"
161
173
  add_mode_once "openclaw"
162
174
  add_mode_once "trae"
175
+ add_mode_once "agents"
163
176
  ;;
164
177
  *)
165
178
  echo "Invalid mode: $mode" >&2
@@ -195,8 +208,9 @@ choose_modes_interactive() {
195
208
  echo "1) codex (~/.codex/skills)"
196
209
  echo "2) openclaw (~/.openclaw/workspace*/skills)"
197
210
  echo "3) trae (~/.trae/skills)"
198
- echo "4) all"
199
- choice="$(read_choice_from_user 'Enter choice(s) [1-4]: ')"
211
+ echo "4) agents (~/.agents/skills)"
212
+ echo "5) all"
213
+ choice="$(read_choice_from_user 'Enter choice(s) [1-5]: ')"
200
214
 
201
215
  IFS=',' read -r -a choices <<< "$choice"
202
216
  for raw_choice in "${choices[@]}"; do
@@ -205,7 +219,8 @@ choose_modes_interactive() {
205
219
  1) add_mode_once "codex" ;;
206
220
  2) add_mode_once "openclaw" ;;
207
221
  3) add_mode_once "trae" ;;
208
- 4) add_mode_once "codex"; add_mode_once "openclaw"; add_mode_once "trae" ;;
222
+ 4) add_mode_once "agents" ;;
223
+ 5) add_mode_once "codex"; add_mode_once "openclaw"; add_mode_once "trae"; add_mode_once "agents" ;;
209
224
  *)
210
225
  echo "Invalid choice: $raw_choice" >&2
211
226
  exit 1
@@ -249,6 +264,7 @@ main() {
249
264
  codex) install_codex ;;
250
265
  openclaw) install_openclaw ;;
251
266
  trae) install_trae ;;
267
+ agents) install_agents ;;
252
268
  *)
253
269
  usage
254
270
  exit 1
@@ -0,0 +1,65 @@
1
+ ---
2
+ name: ship-github-issue-fix
3
+ description: Resolve a GitHub issue in an existing repository and submit the fix directly to the requested branch without opening a PR or doing release work. Use when users ask to read issue N, implement the fix, decide whether planning artifacts are needed, run the relevant tests, and commit/push the result to `main` or another specified branch.
4
+ ---
5
+
6
+ # Ship GitHub Issue Fix
7
+
8
+ ## Dependencies
9
+
10
+ - Required: `read-github-issue`, `enhance-existing-features`, and `commit-and-push`.
11
+ - Conditional: `systematic-debug` when the issue is primarily a bug investigation or failing behavior report.
12
+ - Optional: none.
13
+ - Fallback: If any required dependency is unavailable, stop and report which dependency blocked the workflow.
14
+
15
+ ## Standards
16
+
17
+ - Evidence: Read the remote issue and the real implementation before deciding scope, process, or fixes.
18
+ - Execution: Prefer the repo's existing issue-reading helpers, fall back to raw `gh issue` commands when helpers are missing, use spec planning only when the actual change surface justifies it, and push directly to the user-requested branch when submission is requested.
19
+ - Quality: Treat localized bug fixes and narrow optimizations as direct implementation work unless the explored scope proves they need shared planning; finish tests, spec backfill, docs sync, and `AGENTS.md` sync before handing off submission.
20
+ - Output: Report the issue context, chosen workflow, implemented fix, validation evidence, and commit/push result.
21
+
22
+ ## Overview
23
+
24
+ Use this skill for the recurring workflow where the user wants one GitHub issue taken from remote context through implementation and direct submission. Keep the workflow tight: fetch the issue faithfully, decide whether specs are necessary from the explored codebase, finish the fix with tests, then submit without PR or release steps.
25
+
26
+ ## Workflow
27
+
28
+ ### 1) Read the issue from the remote source first
29
+
30
+ - Start with `$read-github-issue`.
31
+ - Verify the current repository matches the intended remote before reading issue content.
32
+ - Prefer bundled issue scripts, but if they are missing or fail in the repository, immediately fall back to raw `gh issue view` / `gh issue list` so issue retrieval does not block the workflow.
33
+ - Read issue body, labels, timestamps, and comments before touching code.
34
+ - Treat user phrases such as `修復 issue 123`, `參考 issue 109 優化`, or `閱讀 issue 100 並提交到 main` as triggers for this skill.
35
+
36
+ ### 2) Explore the codebase and decide whether specs are required
37
+
38
+ - After reading the issue, inspect the real entrypoints, affected modules, tests, and existing planning files.
39
+ - Run `$enhance-existing-features` to decide whether specs are required from the actual change surface.
40
+ - Default to direct implementation for clearly localized bug fixes, regressions, narrow optimizations, or small workflow corrections, even when the issue wording sounds broad.
41
+ - Require specs when the explored change touches critical money movement, permissions, high-risk concurrency, or multi-module behavior changes that need approval traceability.
42
+ - If specs are created and approved, finish all in-scope tasks and backfill them before submission.
43
+
44
+ ### 3) Implement and validate the fix completely
45
+
46
+ - Keep the fix minimal and grounded in the actual root cause.
47
+ - Reuse existing patterns instead of adding parallel abstractions.
48
+ - If the issue is a bug or failing behavior report, bring in `$systematic-debug` for reproduction, root-cause verification, and regression coverage.
49
+ - Run the most specific relevant tests first, then expand validation as needed.
50
+ - When issue context exposed prior agent mistakes, add regression or guardrail coverage so the same failure is less likely to recur.
51
+
52
+ ### 4) Submit the fix without PR or release work
53
+
54
+ - If the user asked to commit or push, hand off to `$commit-and-push`.
55
+ - Preserve the user's explicit branch target; when the user says `push to main`, treat direct push to `main` as the default goal.
56
+ - Before the final commit, ensure any required spec backfill, docs synchronization, and `AGENTS.md` alignment are completed.
57
+ - Do not convert this flow into a PR workflow unless the user explicitly requests a PR.
58
+ - Do not perform version bumps, tags, or GitHub Releases in this skill.
59
+
60
+ ### 5) Report the shipped result
61
+
62
+ - Summarize the issue number and root cause.
63
+ - State whether specs were used or intentionally skipped.
64
+ - List the key files changed, the tests run, and whether commit/push succeeded.
65
+ - Call out any remaining blocker only when one truly prevents completion.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Ship GitHub Issue Fix"
3
+ short_description: "Fix a GitHub issue and push directly"
4
+ default_prompt: "Use $ship-github-issue-fix to read the target GitHub issue from the current repository, decide whether specs are needed, implement the fix with appropriate tests, synchronize docs and AGENTS when needed, and commit and push directly to the requested branch without PR or release steps."
@@ -15,7 +15,7 @@ description: "Guide the agent to prepare and publish a versioned release (versio
15
15
  ## Standards
16
16
 
17
17
  - Evidence: Inspect the active change set and the release range before touching version files, tags, or changelog entries.
18
- - Execution: Use this workflow only for explicit release intent, run the required quality gates when applicable, convert completed spec sets into categorized project docs before release finalization, normalize non-standard project docs when needed, then update versions, docs, commit, tag, push, and publish the GitHub release.
18
+ - Execution: Use this workflow only for explicit release intent, run the required quality gates when applicable, convert completed spec sets into categorized project docs before release finalization, normalize non-standard project docs when needed, then update versions, docs, commit, tag, push, and publish the GitHub release; run git mutations sequentially and verify both the branch tip and release tag exist remotely before publishing the GitHub release.
19
19
  - Quality: Never guess versions, align user-facing docs with actual code, convert completed planning docs into standardized categorized project docs before the release is published, and treat the `archive-specs` structure as the release-ready documentation format.
20
20
  - Output: Produce a versioned release commit and tag, publish a matching GitHub release, and keep changelog plus relevant repository documentation synchronized.
21
21
 
@@ -91,6 +91,9 @@ Load only when needed:
91
91
  - Create the version tag locally after commit.
92
92
  11. Push
93
93
  - Push commit(s) and the release tag to the current branch before publishing the GitHub release when the hosting platform requires the tag to exist remotely.
94
+ - Do not overlap `git commit`, `git tag`, `git push`, or release-publish steps; wait for each mutation to finish before starting the next one.
95
+ - After pushing, verify the remote branch tip matches local `HEAD`, and verify the release tag exists remotely via `git ls-remote --tags <remote> <tag>`.
96
+ - If any git step finishes ambiguously or the remote hashes do not match local state, rerun the missing step sequentially and re-check before publishing the GitHub release.
94
97
  12. Publish the GitHub release
95
98
  - Create a non-draft GitHub release that matches the pushed version tag.
96
99
  - Use the release notes from the new `CHANGELOG.md` entry unless the repository has a stronger established release-note source.