@laitszkin/apollo-toolkit 2.11.1 → 2.11.3

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 (34) hide show
  1. package/AGENTS.md +2 -2
  2. package/CHANGELOG.md +18 -0
  3. package/README.md +2 -2
  4. package/analyse-app-logs/README.md +12 -0
  5. package/analyse-app-logs/SKILL.md +6 -1
  6. package/analyse-app-logs/agents/openai.yaml +1 -1
  7. package/analyse-app-logs/scripts/filter_logs_by_time.py +64 -0
  8. package/analyse-app-logs/scripts/log_cli_utils.py +112 -0
  9. package/analyse-app-logs/scripts/search_logs.py +137 -0
  10. package/analyse-app-logs/tests/test_filter_logs_by_time.py +95 -0
  11. package/analyse-app-logs/tests/test_search_logs.py +100 -0
  12. package/commit-and-push/SKILL.md +17 -10
  13. package/develop-new-features/SKILL.md +17 -4
  14. package/develop-new-features/references/testing-e2e.md +1 -0
  15. package/enhance-existing-features/SKILL.md +20 -4
  16. package/enhance-existing-features/references/e2e-tests.md +1 -0
  17. package/generate-spec/SKILL.md +18 -3
  18. package/generate-spec/references/templates/checklist.md +30 -6
  19. package/generate-spec/references/templates/spec.md +7 -2
  20. package/maintain-skill-catalog/SKILL.md +3 -1
  21. package/open-github-issue/README.md +48 -6
  22. package/open-github-issue/SKILL.md +80 -5
  23. package/open-github-issue/agents/openai.yaml +2 -2
  24. package/open-github-issue/scripts/open_github_issue.py +174 -1
  25. package/open-github-issue/tests/test_open_github_issue.py +79 -0
  26. package/package.json +1 -1
  27. package/read-github-issue/SKILL.md +83 -0
  28. package/read-github-issue/agents/openai.yaml +4 -0
  29. package/{fix-github-issues/scripts/list_issues.py → read-github-issue/scripts/find_issues.py} +1 -1
  30. package/read-github-issue/scripts/read_issue.py +108 -0
  31. package/{fix-github-issues/tests/test_list_issues.py → read-github-issue/tests/test_find_issues.py} +3 -3
  32. package/read-github-issue/tests/test_read_issue.py +109 -0
  33. package/fix-github-issues/SKILL.md +0 -105
  34. package/fix-github-issues/agents/openai.yaml +0 -4
@@ -15,9 +15,9 @@ 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, then commit and push without release steps.
19
- - Quality: Re-run relevant validation for runtime changes and keep project docs plus agent constraints synchronized before committing; treat `archive-specs` outputs as the canonical project-doc structure when normalization is required.
20
- - Output: Produce a concise Conventional Commit and push it to the current branch only.
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.
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
+ - 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
 
22
22
  ## Overview
23
23
 
@@ -43,29 +43,36 @@ Load only when needed:
43
43
  - `repo-specs-ready-for-conversion`: the relevant `spec.md`, `tasks.md`, and `checklist.md` have been updated to reflect the actual outcome of the work, and any unchecked task/decision checkbox that is clearly not selected, replaced, deferred, or `N/A` (for example, E2E intentionally not created) does not by itself mean the spec set is unfinished.
44
44
  - `project-doc-structure-mismatch`: existing `README.md` and project docs do not match the categorized structure required by `archive-specs`.
45
45
  - Treat a spec set as still active when it documents remaining implementation gaps, follow-up integration work, undecided design work, or deferred tasks that still belong to the same in-flight change.
46
- 3. Run code-affecting dependency skills (when applicable)
46
+ 3. Resolve branch target before mutating history
47
+ - Treat an explicit user-specified destination such as `main`, `origin/main`, or another named branch as authoritative over the current branch.
48
+ - If the current branch does not match the requested destination, inspect `git status --short` for unrelated local changes before switching branches.
49
+ - Preserve unrelated uncommitted work safely before branch operations, for example with `git stash push`, and restore it after the target branch has been updated.
50
+ - If the fix was committed on the wrong branch, move it to the requested branch with safe history-preserving operations such as `cherry-pick`, `merge --ff-only`, or a clean replay; do not force-push unless the user explicitly asks for it.
51
+ - If the user asks to sync the local target branch after pushing, fast-forward or pull that branch locally and then restore any preserved worktree changes.
52
+ 4. Run code-affecting dependency skills (when applicable)
47
53
  - Run `review-change-set`, `discover-edge-cases`, and `harden-app-security` for the same code-affecting scope when their coverage is needed.
48
54
  - Consolidate and resolve all confirmed findings before continuing.
49
55
  - Re-run relevant tests when runtime logic changes.
50
- 4. Standardize project docs when specs or doc normalization is needed
56
+ 5. Standardize project docs when specs or doc normalization is needed
51
57
  - During submission, execute `archive-specs` when `repo-specs-ready-for-conversion` is true or when `project-doc-structure-mismatch` is true.
52
58
  - Let `archive-specs` convert the relevant specs into categorized project docs such as `docs/README.md`, `docs/getting-started.md`, `docs/configuration.md`, `docs/architecture.md`, `docs/features.md`, and `docs/developer-guide.md`.
53
59
  - Let the skill normalize any existing project docs to the same structure and archive superseded source spec files.
54
60
  - Do not treat unchecked task or decision checkboxes alone as blocking unfinished work; read the surrounding notes and requirement status semantically.
55
61
  - If the docs still show unresolved implementation scope that is neither completed, intentionally deferred, nor explicitly `N/A`, do not convert them yet; report that the spec files remain active and should not be deleted.
56
62
  - If the current change intentionally ships a partial phase while the same plan set still tracks remaining work, keep that plan set live and skip archival for that scope.
57
- 5. Run pre-commit sync dependencies
63
+ 6. Run pre-commit sync dependencies
58
64
  - Execute `align-project-documents` after spec conversion and code/doc scans are complete.
59
65
  - Execute `maintain-project-constraints` immediately before the commit.
60
- 6. Keep docs synchronized when needed
66
+ 7. Keep docs synchronized when needed
61
67
  - Apply the output from `archive-specs` when repository specs were converted or existing project docs were normalized into categorized project docs.
62
68
  - Apply the output from `align-project-documents` when behavior or usage changed.
63
69
  - Apply the output from `maintain-project-constraints` when agent workflow/rules changed.
64
- 7. Commit
70
+ 8. Commit
65
71
  - Preserve user staging intent where possible.
66
72
  - Write a concise Conventional Commit message using `references/commit-messages.md`.
67
- 8. Push
68
- - Push commit(s) to the current branch.
73
+ 9. Push
74
+ - Push commit(s) to the intended branch.
75
+ - Confirm the local branch state matches the user's requested destination when post-push synchronization was requested.
69
76
 
70
77
  ## Notes
71
78
 
@@ -28,13 +28,13 @@ description: >-
28
28
  ## Standards
29
29
 
30
30
  - Evidence: Review authoritative docs and the existing codebase before planning or implementation.
31
- - Execution: Run `generate-spec` for every new feature or product-behavior change, obtain approval, then continue through implementation, testing, and backfill until the approved plan is fully reconciled.
31
+ - Execution: Use specs only for feature work that is genuinely multi-step, cross-surface, or higher risk; skip specs for obviously small/localized work and route that work to direct implementation or the appropriate maintenance skill instead.
32
32
  - Quality: Add risk-based tests with property-based, regression, integration, E2E, adversarial, and rollback coverage when relevant.
33
33
  - Output: Keep the approved planning artifacts and the final implementation aligned with actual completion results.
34
34
 
35
35
  ## Goal
36
36
 
37
- Use a shared spec-generation workflow for all new feature work, then implement the approved behavior with strong test coverage and minimal rework.
37
+ Use a shared spec-generation workflow for non-trivial new feature work, then implement the approved behavior with strong test coverage and minimal rework.
38
38
 
39
39
  ## Workflow
40
40
 
@@ -47,7 +47,15 @@ Use a shared spec-generation workflow for all new feature work, then implement t
47
47
 
48
48
  ### 2) Run `$generate-spec`
49
49
 
50
- - Specs are mandatory for every new feature, product behavior change, and greenfield project.
50
+ - First decide whether the request truly belongs in this skill.
51
+ - Do not use this skill or generate specs when the request is actually one of these:
52
+ - bug fixes or regressions that restore intended behavior without introducing new product behavior
53
+ - copy-only, styling-only, spacing-only, layout-only, or other purely presentational UI tweaks with localized impact
54
+ - simple configuration, constant, feature-flag, dependency, or content updates confined to one small area
55
+ - small refactors, naming cleanups, or internal code-health work with no externally visible behavior change
56
+ - narrowly scoped adjustments that touch only a few files/modules and do not require cross-team alignment or approval artifacts
57
+ - In those cases, do not create `spec.md` / `tasks.md` / `checklist.md`; instead use the appropriate direct implementation workflow (for example `enhance-existing-features` for small brownfield adjustments or `systematic-debug` for bug fixes).
58
+ - Specs are required when the request is truly a non-trivial new feature, product behavior change, or greenfield project that needs shared planning.
51
59
  - Follow `$generate-spec` completely for:
52
60
  - generating `docs/plans/{YYYY-MM-DD}_{change_name}/spec.md`, `tasks.md`, and `checklist.md`
53
61
  - filling BDD requirements and risk-driven test plans
@@ -98,7 +106,11 @@ Rules:
98
106
 
99
107
  - Backfill `spec.md`, `tasks.md`, and `checklist.md` through `$generate-spec` workflow after implementation and testing.
100
108
  - In `spec.md`, mark each approved requirement with its actual completion state, such as completed, partially completed, deferred, or not implemented, plus brief evidence or rationale where needed.
101
- - Mark every completed task in `tasks.md`, resolve every applicable checklist item, and explicitly label any remaining item as deferred or blocked with the reason.
109
+ - Mark every completed task in `tasks.md`.
110
+ - In `checklist.md`, update only the items that are actually applicable to the approved scope and executed validation.
111
+ - Do not mark template alternatives, unused example rows, or non-applicable decision branches as completed just to make the file look fully checked.
112
+ - Rewrite, remove, or leave `N/A` on template-only sections so the final checklist reflects the real work rather than the starter template.
113
+ - Explicitly label any truly remaining applicable item as deferred or blocked with the reason.
102
114
  - Report the implemented scope, test execution, and any concrete `N/A` reasons.
103
115
 
104
116
  ## Working Rules
@@ -107,6 +119,7 @@ Rules:
107
119
  - Keep implementation traceable to approved requirement IDs and planned risks.
108
120
  - Prefer realism over rigid templates: add or remove test coverage only when the risk profile justifies it.
109
121
  - Every planned test should justify a distinct risk; remove shallow duplicates that only prove the code "still runs".
122
+ - Treat starter template alternatives as mutually exclusive options, not as boxes that all need to be checked.
110
123
  - If a spec set exists and approval has been granted, do not yield with unfinished in-scope tasks or checklist items unless the user approves a deferment or an external blocker makes completion impossible.
111
124
 
112
125
  ## References
@@ -32,4 +32,5 @@
32
32
  ## Spec/checklist authoring hints
33
33
  - Mark high-risk key paths in `spec.md` requirement descriptions.
34
34
  - Record E2E decisions, mapped test cases, and results in `checklist.md`.
35
+ - When different flows need different strategies, create multiple decision records instead of forcing one shared E2E decision for the whole feature.
35
36
  - If skipping E2E, specify replacement integration test cases (`IT-xx`) and rationale in `checklist.md`.
@@ -48,9 +48,20 @@ Safely extend brownfield systems by exploring the existing codebase first, using
48
48
  Use the user's requested change together with the codebase exploration results to decide whether to generate specs.
49
49
 
50
50
  Trigger specs when any of the following is true:
51
- - high complexity changes
52
- - critical module changes
53
- - cross-module changes
51
+ - the change introduces new user-visible behavior, not just a bug fix restoring intended behavior
52
+ - requirements are ambiguous enough that approval on written scope, tradeoffs, or edge cases is useful
53
+ - multiple modules, layers, services, or teams must stay aligned
54
+ - the change touches critical flows, sensitive data, permissions, money movement, migrations, or irreversible operations
55
+ - the risk profile is high enough that explicit requirement-to-test traceability will materially reduce mistakes
56
+
57
+ Do not generate specs when the work is clearly small and localized, such as:
58
+ - bug fixes or regressions that restore already-intended behavior without changing product scope
59
+ - pure frontend polish: copy tweaks, styling, spacing, alignment, responsive touch-ups, visual cleanup, or simple template/view wiring
60
+ - small configuration, constant, dependency, content, or feature-flag updates confined to one area
61
+ - straightforward CRUD field additions, validation message tweaks, or one-path handler adjustments with limited blast radius
62
+ - refactors, renames, dead-code cleanup, or observability-only changes that do not alter user-visible behavior
63
+
64
+ When in doubt, prefer direct implementation for genuinely low-risk localized changes, and reserve specs for changes whose scope or risk would benefit from explicit approval artifacts.
54
65
 
55
66
  If triggered:
56
67
  - Run `$generate-spec` and follow its workflow completely.
@@ -108,7 +119,11 @@ Rules:
108
119
 
109
120
  - If specs were used, backfill `spec.md`, `tasks.md`, and `checklist.md` through `$generate-spec` workflow based on actual completion and test outcomes.
110
121
  - In `spec.md`, mark each relevant requirement with its actual completion state, such as completed, partially completed, deferred, or not implemented, plus brief evidence or rationale where needed.
111
- - If specs were used, mark every completed task in `tasks.md`, resolve every applicable checklist item, and explicitly label any remaining item as deferred or blocked with the reason.
122
+ - If specs were used, mark every completed task in `tasks.md`.
123
+ - If specs were used, update only the applicable checklist items that correspond to real scope, chosen test strategy, and actual execution.
124
+ - Do not mark unused template examples, mutually exclusive alternatives, or non-applicable branches as completed.
125
+ - Remove, rewrite, or leave `N/A` on starter-template items when they do not belong to the real change.
126
+ - Explicitly label any still-applicable remaining item as deferred or blocked with the reason.
112
127
  - If specs were not used, provide a concise execution summary including test IDs/results, regression coverage, mock scenario coverage, adversarial coverage, and any `N/A` reasons.
113
128
 
114
129
  ## Working Rules
@@ -117,6 +132,7 @@ Rules:
117
132
  - Always decide the need for specs only after exploring the existing codebase.
118
133
  - Maintain traceability between requirements, tasks, and tests when specs are present.
119
134
  - Treat checklists as living artifacts: adjust items to match real change scope.
135
+ - Treat mutually exclusive template choices as a decision to record, not multiple boxes to finish.
120
136
  - Every planned test should justify a distinct risk; remove shallow duplicates that only prove the code "still runs".
121
137
  - If a spec set exists and approval has been granted, do not yield with unfinished in-scope tasks or checklist items unless the user approves a deferment or an external blocker makes completion impossible.
122
138
 
@@ -22,4 +22,5 @@
22
22
 
23
23
  ## Recording rules
24
24
  - Specs flow: record E2E or replacement strategy with outcomes in `checklist.md`.
25
+ - When different flows need different strategies, create multiple decision records in `checklist.md` so each flow/risk slice keeps its own rationale and linked case IDs.
25
26
  - Non-specs flow: explain E2E execution or replacement testing with rationale in the response.
@@ -14,9 +14,9 @@ description: Generate and maintain shared feature planning artifacts (`spec.md`,
14
14
 
15
15
  ## Standards
16
16
 
17
- - Evidence: Review the relevant code, configs, and authoritative docs before filling requirements or test plans.
17
+ - Evidence: Review the relevant code, configs, and authoritative docs before filling requirements or test plans; when external dependencies, libraries, frameworks, APIs, or platforms are involved, checking their official documentation is mandatory during spec creation.
18
18
  - Execution: Generate the planning files first, complete them with traceable requirements and risks, handle clarification updates, then wait for explicit approval before implementation.
19
- - Quality: Keep `spec.md`, `tasks.md`, and `checklist.md` synchronized and map each planned test to a concrete risk or requirement.
19
+ - Quality: Keep `spec.md`, `tasks.md`, and `checklist.md` synchronized, map each planned test to a concrete risk or requirement, and tailor the templates so only applicable items remain active.
20
20
  - Output: Store planning artifacts under `docs/plans/{YYYY-MM-DD}_{change_name}/` and keep them concise, executable, and easy to update.
21
21
 
22
22
  ## Goal
@@ -29,6 +29,9 @@ Own the shared planning-doc lifecycle for feature work so other skills can reuse
29
29
 
30
30
  - Confirm the target workspace root, feature name, and a kebab-case `change_name`.
31
31
  - Review only the code, configuration, and external docs needed to understand the requested behavior.
32
+ - If the change depends on frameworks, libraries, SDKs, APIs, CLIs, hosted services, or other external systems, find and read the relevant official documentation before drafting requirements.
33
+ - Treat official documentation lookup as mandatory evidence gathering, not an optional refinement step.
34
+ - Use the official docs to verify expected behavior, supported constraints, configuration surface, integration contracts, and any implementation limits that should shape the spec.
32
35
  - Record the references that should appear in `spec.md`.
33
36
  - Inspect existing `docs/plans/` directories before deciding whether to edit an existing plan set.
34
37
  - Reuse an existing plan set only when it clearly matches the same requested issue/change scope.
@@ -50,9 +53,11 @@ Own the shared planning-doc lifecycle for feature work so other skills can reuse
50
53
  ### 3) Fill `spec.md`
51
54
 
52
55
  - Keep the goal and scope concrete.
56
+ - Ensure the described scope and requirements do not contradict the relevant official documentation or integration contracts.
53
57
  - Write functional behaviors in BDD form with `GIVEN`, `WHEN`, `THEN`, `AND`, and `Requirements`.
54
58
  - Make each requirement testable.
55
59
  - Cover boundaries, authorization, external dependency states, abuse/adversarial paths, failure handling, and any relevant idempotency/concurrency/data-integrity risks.
60
+ - Record the official-doc references actually used for the spec, especially for external dependency behavior and constraints.
56
61
  - If requirements are unclear, list 3-5 clarification questions; otherwise write `None`.
57
62
 
58
63
  ### 4) Fill `tasks.md`
@@ -64,11 +69,15 @@ Own the shared planning-doc lifecycle for feature work so other skills can reuse
64
69
 
65
70
  ### 5) Fill `checklist.md`
66
71
 
67
- - Use checkbox format `- [ ]` only.
72
+ - Use checkbox format `- [ ]` for checklist items, except structured placeholder fields that are intentionally left for later fill-in.
68
73
  - Treat the template as a starting point and adapt it to the actual scope.
74
+ - Remove or rewrite template examples that are not part of the real plan instead of leaving them as fake work to be checked later.
69
75
  - Map observable behaviors to requirement IDs and real test case IDs.
70
76
  - Record risk class, oracle/assertion focus, dependency strategy, and test results.
71
77
  - Property-based coverage is required for business-logic changes unless a concrete `N/A` reason is recorded.
78
+ - For decision sections, create as many records as needed for distinct flows or risk slices; do not collapse unrelated decisions into one record.
79
+ - Within each decision record, keep only the selected strategy or clearly mark the non-selected path as `N/A`; never treat mutually exclusive choices inside one record as multiple completed outcomes.
80
+ - For completion-summary sections, create as many completion records as needed for distinct flows, requirement groups, or workstreams; do not force the whole spec into a single completion line when different parts finish differently.
72
81
 
73
82
  ### 6) Process clarifications and approval
74
83
 
@@ -82,6 +91,10 @@ Own the shared planning-doc lifecycle for feature work so other skills can reuse
82
91
 
83
92
  - Mark completed tasks in `tasks.md`.
84
93
  - Update `checklist.md` with real test outcomes, `N/A` reasons, and any scope adjustments.
94
+ - Only mark checklist items complete when the work actually happened or the recorded decision actually applies.
95
+ - Do not check off unused examples, placeholder rows, or non-selected decision options.
96
+ - If different flows use different test strategies, preserve separate decision records in the final checklist instead of merging them into a misleading single summary.
97
+ - If different parts of the approved scope have different completion states, preserve separate completion records in the final checklist instead of flattening them into one ambiguous status.
85
98
  - Remove stale placeholders or template-only guidance once the documents are finalized.
86
99
 
87
100
  ## Working Rules
@@ -89,6 +102,8 @@ Own the shared planning-doc lifecycle for feature work so other skills can reuse
89
102
  - By default, write planning docs in the user's language.
90
103
  - Keep requirement IDs, task IDs, and test IDs traceable across all three files.
91
104
  - Prefer realistic coverage over boilerplate: add or remove checklist items based on actual risk.
105
+ - Finalized planning docs should read like the actual approved plan and execution record, not like a fully checked starter template.
106
+ - If official documentation materially constrains implementation choices, reflect that constraint explicitly in the spec instead of leaving it implicit.
92
107
  - Use kebab-case for `change_name`; avoid spaces and special characters.
93
108
  - Path rule: `scripts/...` and `references/...` in this file always mean paths under the current skill folder, not the target project root.
94
109
  - Never overwrite a nearby issue's plan set just because the technical area overlaps; shared modules are not sufficient evidence that the scope is the same.
@@ -6,7 +6,11 @@
6
6
  ## Usage Notes
7
7
  - This checklist is a starter template. Add, remove, or rewrite items based on actual scope.
8
8
  - Use `- [ ]` for all items; mark completed items as `- [x]`.
9
+ - The final completion summary section may use structured placeholders instead of checkboxes.
9
10
  - If an item is not applicable, keep `N/A` with a concrete reason.
11
+ - Do not mark placeholder examples or mutually exclusive alternatives as completed unless they were actually selected and executed.
12
+ - Duplicate or remove decision-record blocks as needed; the final document should contain as many records as the real change requires.
13
+ - Duplicate or remove completion-record blocks as needed; the final document should contain as many records as the real change requires.
10
14
  - Suggested test result values: `PASS / FAIL / BLOCKED / NOT RUN / N/A`.
11
15
  - For business-logic changes, property-based coverage is required unless a concrete `N/A` reason is recorded.
12
16
  - Each checklist item should map to a distinct risk; avoid repeating shallow happy-path cases.
@@ -60,10 +64,19 @@
60
64
  - [ ] Assertions verify business outcomes and side effects/no-side-effects, not only "returns 200" or "does not throw".
61
65
  - [ ] Test fixtures are reproducible (fixed seed/clock/fixtures) or `N/A` is recorded with a concrete reason.
62
66
 
63
- ## E2E Decision Record (pick one or customize)
64
- - [ ] Build E2E (case: [E2E-xx]; reason: [importance/complexity/cross-layer risk]).
65
- - [ ] Do not build E2E; cover with integration tests instead (alternative case: [IT-xx]; reason: [stability/cost/environment limitation]).
66
- - [ ] No additional E2E/integration hardening required (reason: [existing coverage already addresses risk]).
67
+ ## E2E / Integration Decision Records
68
+
69
+ ### Decision Record 1: [Flow / Requirement / Risk Slice]
70
+ - Requirement mapping: [R?.? / CL-xx]
71
+ - Decision: [Build E2E / Cover with integration instead / Existing coverage already sufficient / N/A]
72
+ - Linked case IDs: [E2E-xx / IT-xx / existing suite reference]
73
+ - Reason: [importance, cross-layer risk, stability/cost tradeoff, or why no extra coverage is needed]
74
+
75
+ ### Decision Record 2: [Flow / Requirement / Risk Slice]
76
+ - Requirement mapping: [R?.? / CL-xx]
77
+ - Decision: [Build E2E / Cover with integration instead / Existing coverage already sufficient / N/A]
78
+ - Linked case IDs: [E2E-xx / IT-xx / existing suite reference]
79
+ - Reason: [importance, cross-layer risk, stability/cost tradeoff, or why no extra coverage is needed]
67
80
 
68
81
  ## Execution Summary (fill with actual results)
69
82
  - [ ] Unit tests: `PASS / FAIL / NOT RUN / N/A`
@@ -74,5 +87,16 @@
74
87
  - [ ] External service mock scenarios: `PASS / FAIL / NOT RUN / N/A`
75
88
  - [ ] Adversarial/penetration-style cases: `PASS / FAIL / NOT RUN / N/A`
76
89
 
77
- ## Completion Rule
78
- - [ ] Agent has updated checkboxes, test outcomes, and necessary notes based on real execution (including added/removed items).
90
+ ## Completion Records
91
+
92
+ ### Completion Record 1: [Flow / Requirement Group / Workstream]
93
+ - Requirement mapping: [R?.? / Task N / CL-xx]
94
+ - Completion status: [completed / partially completed / blocked / deferred]
95
+ - Remaining applicable items: [None / list remaining items]
96
+ - Notes: [brief execution-backed summary]
97
+
98
+ ### Completion Record 2: [Flow / Requirement Group / Workstream]
99
+ - Requirement mapping: [R?.? / Task N / CL-xx]
100
+ - Completion status: [completed / partially completed / blocked / deferred]
101
+ - Remaining applicable items: [None / list remaining items]
102
+ - Notes: [brief execution-backed summary]
@@ -8,8 +8,12 @@
8
8
  [Describe the business goal and user value in one sentence.]
9
9
 
10
10
  ## Scope
11
- - In scope: [What is included in this change]
12
- - Out of scope: [What is explicitly excluded]
11
+
12
+ ### In Scope
13
+ [What is included in this change]
14
+
15
+ ### Out of Scope
16
+ [What is explicitly excluded]
13
17
 
14
18
  ## Functional Behaviors (BDD)
15
19
 
@@ -51,5 +55,6 @@
51
55
  ## References
52
56
  - Official docs:
53
57
  - [Link or document 1]
58
+ - [Link or document 2]
54
59
  - Related code files:
55
60
  - [File path 1]
@@ -16,7 +16,7 @@ description: Audit and maintain a repository of installable skills so the catalo
16
16
 
17
17
  - Evidence: Read the actual skill folders, validation scripts, repository docs, and local installed skill names before changing dependency classifications or catalog docs.
18
18
  - Execution: Audit first, classify findings, make focused catalog updates, then run the repo validators before finishing.
19
- - Quality: Avoid duplicate skills, avoid rewording behavior without checking the implementation, and distinguish aliases or local unpublished skills from true external dependencies.
19
+ - Quality: Avoid duplicate skills, avoid rewording behavior without checking the implementation, distinguish aliases or local unpublished skills from true external dependencies, and enforce the repository's current metadata constraints such as `SKILL.md` frontmatter validity, description-length limits, and synchronized agent configs.
20
20
  - Output: Leave the catalog with synchronized skill metadata, dependency documentation, and validation status.
21
21
 
22
22
  ## Goal
@@ -35,6 +35,7 @@ Keep a skill repository coherent when many top-level skills evolve together.
35
35
  ### 2) Audit dependency declarations and shared conventions
36
36
 
37
37
  - Use the standardized `## Dependencies` section as the source of truth for skill-to-skill relationships.
38
+ - Read the current validator scripts before changing frontmatter-heavy files so metadata limits come from implementation rather than memory.
38
39
  - Classify each dependency as:
39
40
  - vendored in this repository
40
41
  - local/private skill that should not be documented as external
@@ -49,6 +50,7 @@ Keep a skill repository coherent when many top-level skills evolve together.
49
50
  - Update `README.md` skill lists and external dependency sections when the catalog actually changes.
50
51
  - Update `AGENTS.md` when the repository gains or loses a user-visible capability or a standing convention changes.
51
52
  - When creating a new shared skill, align naming, frontmatter, `agents/openai.yaml`, and any lightweight README with neighboring skills.
53
+ - When a failure comes from validator drift or a metadata constraint that was not caught early, tighten the validator or CI path in the same change instead of only fixing the offending skill text.
52
54
  - Do not treat unpublished local skills as external dependencies just because they are not yet installed elsewhere.
53
55
 
54
56
  ### 4) Validate the catalog after changes
@@ -1,15 +1,15 @@
1
1
  # Open GitHub Issue
2
2
 
3
- Structured GitHub issue and feature-proposal publishing with deterministic authentication fallback and repository-language-aware issue bodies.
3
+ Structured GitHub issue publishing across multiple issue categories with deterministic authentication fallback and repository-language-aware issue bodies.
4
4
 
5
- This skill helps agents publish confirmed findings or accepted feature proposals as GitHub issues without embedding repository resolution, auth handling, and language detection logic into every other workflow.
5
+ This skill helps agents publish confirmed findings, accepted proposals, documentation gaps, security risks, observability gaps, and performance issues as GitHub issues without embedding repository resolution, auth handling, and language detection logic into every other workflow.
6
6
 
7
7
  ## What this skill provides
8
8
 
9
9
  - Target repository resolution from `--repo` or current git `origin`.
10
10
  - Strict auth fallback order: `gh` login -> `GITHUB_TOKEN`/`GH_TOKEN` -> draft only.
11
11
  - Issue body language detection based on the target repository README.
12
- - Consistent structured issue bodies for both problem issues and feature proposal issues.
12
+ - Consistent structured issue bodies for `problem`, `feature`, `performance`, `security`, `docs`, and `observability` issues.
13
13
  - Machine-readable JSON output so parent skills can report publication status consistently.
14
14
 
15
15
  ## Repository structure
@@ -33,7 +33,7 @@ cp -R open-github-issue "$CODEX_HOME/skills/open-github-issue"
33
33
  Invoke the skill in your prompt:
34
34
 
35
35
  ```text
36
- Use $open-github-issue to publish this confirmed finding or accepted feature proposal to GitHub.
36
+ Use $open-github-issue to publish this confirmed finding or accepted proposal to GitHub.
37
37
  ```
38
38
 
39
39
  The bundled script can also be called directly:
@@ -58,6 +58,19 @@ python scripts/open_github_issue.py \
58
58
  --repo owner/repo
59
59
  ```
60
60
 
61
+ ```bash
62
+ python scripts/open_github_issue.py \
63
+ --issue-type security \
64
+ --title "[Security] Missing authorization check on admin export" \
65
+ --problem-description "The admin export endpoint can be reached without verifying the caller's admin role." \
66
+ --severity high \
67
+ --affected-scope "/admin/export endpoint and exported customer data" \
68
+ --impact "Unauthorized users may access privileged exports containing sensitive business data." \
69
+ --evidence "Code path review and reproduced requests show the handler validates session presence but not the admin permission gate." \
70
+ --suggested-action "Add explicit authorization enforcement, regression tests, and audit logging for denied access attempts." \
71
+ --repo owner/repo
72
+ ```
73
+
61
74
  ## Publication behavior
62
75
 
63
76
  For each issue:
@@ -66,7 +79,7 @@ For each issue:
66
79
  2. Otherwise, if `GITHUB_TOKEN` or `GH_TOKEN` exists, publish via GitHub REST API.
67
80
  3. Otherwise, return draft issue content without blocking the caller.
68
81
 
69
- Problem issues always include exactly three sections:
82
+ `problem` issues always include exactly three sections:
70
83
 
71
84
  - `Problem Description`
72
85
  - `Suspected Cause`
@@ -80,7 +93,7 @@ Within `Problem Description`, include:
80
93
 
81
94
  For Chinese-language repositories, use translated section titles with the same meaning.
82
95
 
83
- Feature proposal issues always include:
96
+ `feature` issues always include:
84
97
 
85
98
  - `Feature Proposal`
86
99
  - `Why This Is Needed`
@@ -88,6 +101,35 @@ Feature proposal issues always include:
88
101
 
89
102
  For Chinese-language repositories, use translated section titles with the same meaning.
90
103
 
104
+ `performance` issues include:
105
+
106
+ - `Performance Problem`
107
+ - `Impact`
108
+ - `Evidence`
109
+ - `Suggested Action`
110
+
111
+ `security` issues include:
112
+
113
+ - `Security Risk`
114
+ - `Severity`
115
+ - `Affected Scope`
116
+ - `Impact`
117
+ - `Evidence`
118
+ - `Suggested Mitigation`
119
+
120
+ `docs` issues include:
121
+
122
+ - `Documentation Gap`
123
+ - `Evidence`
124
+ - `Suggested Update`
125
+
126
+ `observability` issues include:
127
+
128
+ - `Observability Gap`
129
+ - `Impact`
130
+ - `Evidence`
131
+ - `Suggested Instrumentation`
132
+
91
133
  ## Output
92
134
 
93
135
  The script prints JSON including:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: open-github-issue
3
- description: Publish structured GitHub issues and feature proposals with deterministic auth fallback, target-repo resolution, README-based language detection, and draft-only fallback when authentication is unavailable. Use when users ask to open GitHub issues from confirmed findings, accepted feature proposals, or prepared issue content.
3
+ description: Publish structured GitHub issues across multiple issue categories with deterministic auth fallback, target-repo resolution, README-based language detection, and draft-only fallback when authentication is unavailable. Use when users ask to open GitHub issues from confirmed findings, accepted proposals, documentation gaps, security risks, observability gaps, or prepared issue content.
4
4
  ---
5
5
 
6
6
  # Open GitHub Issue
@@ -14,14 +14,14 @@ description: Publish structured GitHub issues and feature proposals with determi
14
14
 
15
15
  ## Standards
16
16
 
17
- - Evidence: Require structured issue inputs, detect repository language from the target README instead of guessing, and for `problem` issues capture BDD-style expected vs current behavior with an explicit delta.
17
+ - Evidence: Require structured issue inputs, detect repository language from the target README instead of guessing, and enforce category-specific required fields so each issue type matches the situation being reported.
18
18
  - Execution: Resolve the repo, normalize the issue body, publish with strict auth order, then return the publication result.
19
19
  - Quality: Preserve upstream evidence, localize only the structural parts, keep publication deterministic and reproducible, and make behavioral mismatches easy for maintainers to verify.
20
20
  - Output: Return publication mode, issue URL when created, rendered body, and any publish error in the standardized JSON contract.
21
21
 
22
22
  ## Overview
23
23
 
24
- Use this skill to publish a structured GitHub issue or feature proposal deterministically.
24
+ Use this skill to publish structured GitHub issues deterministically across several common issue situations.
25
25
 
26
26
  It is designed to be reusable by other skills that already know the issue title and evidence, but need a consistent way to:
27
27
 
@@ -36,7 +36,7 @@ It is designed to be reusable by other skills that already know the issue title
36
36
  - Prefer authenticated `gh` CLI first, then GitHub token, then draft-only fallback.
37
37
  - Detect repository issue language from the target remote README instead of guessing.
38
38
  - Preserve upstream evidence content; only localize section headers and default fallback text.
39
- - Make the issue type explicit: `problem` for defects/incidents, `feature` for proposals.
39
+ - Make the issue type explicit: `problem`, `feature`, `performance`, `security`, `docs`, or `observability`.
40
40
  - For `problem` issues, describe the expected behavior and current behavior with BDD-style `Given / When / Then`, then state the behavioral difference explicitly.
41
41
 
42
42
  ## Workflow
@@ -59,6 +59,27 @@ It is designed to be reusable by other skills that already know the issue title
59
59
  - `proposal` (optional; defaults to title when omitted)
60
60
  - `reason`
61
61
  - `suggested-architecture`
62
+ - For `performance` issues, require:
63
+ - `problem-description`
64
+ - `impact`
65
+ - `evidence`
66
+ - `suggested-action`
67
+ - For `security` issues, require:
68
+ - `problem-description`
69
+ - `severity`
70
+ - `affected-scope`
71
+ - `impact`
72
+ - `evidence`
73
+ - `suggested-action`
74
+ - For `docs` issues, require:
75
+ - `problem-description`
76
+ - `evidence`
77
+ - `suggested-action`
78
+ - For `observability` issues, require:
79
+ - `problem-description`
80
+ - `impact`
81
+ - `evidence`
82
+ - `suggested-action`
62
83
  - If reproduction is missing for a `problem` issue, insert the default non-reproducible note in the target issue language.
63
84
  3. Detect issue language
64
85
  - Read the target repository README from GitHub.
@@ -98,6 +119,59 @@ python scripts/open_github_issue.py \
98
119
  --repo <owner/repo>
99
120
  ```
100
121
 
122
+ Performance issue:
123
+
124
+ ```bash
125
+ python scripts/open_github_issue.py \
126
+ --issue-type performance \
127
+ --title "[Performance] Slow dashboard query under large tenants" \
128
+ --problem-description "Dashboard loading time degrades sharply once tenant data exceeds current pagination assumptions." \
129
+ --impact "Users wait 8-12 seconds before the page becomes interactive; this blocks support workflows." \
130
+ --evidence "Profiler output, slow-query logs, and production timings all point to repeated full-table scans in the summary query path." \
131
+ --suggested-action "Add bounded pagination, pre-aggregated summaries, and an index review for the offending query path." \
132
+ --repo <owner/repo>
133
+ ```
134
+
135
+ Security issue:
136
+
137
+ ```bash
138
+ python scripts/open_github_issue.py \
139
+ --issue-type security \
140
+ --title "[Security] Missing authorization check on admin export" \
141
+ --problem-description "The admin export endpoint can be reached without verifying the caller's admin role." \
142
+ --severity high \
143
+ --affected-scope "/admin/export endpoint and exported customer data" \
144
+ --impact "Unauthorized users may access privileged exports containing sensitive business data." \
145
+ --evidence "Code path review and reproduced requests show the handler validates session presence but not the admin permission gate." \
146
+ --suggested-action "Add explicit authorization enforcement, regression tests, and audit logging for denied access attempts." \
147
+ --repo <owner/repo>
148
+ ```
149
+
150
+ Docs issue:
151
+
152
+ ```bash
153
+ python scripts/open_github_issue.py \
154
+ --issue-type docs \
155
+ --title "[Docs] Deployment guide omits required Redis configuration" \
156
+ --problem-description "The deployment guide does not mention the required Redis URL and worker startup order." \
157
+ --evidence "README deploy steps differ from the actual compose file and runtime startup checks." \
158
+ --suggested-action "Update deployment docs with required env vars, startup order, and a minimal validation checklist." \
159
+ --repo <owner/repo>
160
+ ```
161
+
162
+ Observability issue:
163
+
164
+ ```bash
165
+ python scripts/open_github_issue.py \
166
+ --issue-type observability \
167
+ --title "[Observability] Missing request identifiers in payment retry logs" \
168
+ --problem-description "Retry logs do not include stable request or trace identifiers, so multi-line failures cannot be correlated quickly." \
169
+ --impact "On-call engineers cannot isolate a single failing payment flow without manual log stitching." \
170
+ --evidence "Current retry log lines include endpoint and error text only; incident review required manual timestamp matching." \
171
+ --suggested-action "Add request_id, trace_id, upstream target, and retry attempt fields to retry logs and dashboard facets." \
172
+ --repo <owner/repo>
173
+ ```
174
+
101
175
  ## Output contract
102
176
 
103
177
  The script prints JSON with these fields:
@@ -115,11 +189,12 @@ The script prints JSON with these fields:
115
189
 
116
190
  When another skill depends on `open-github-issue`:
117
191
 
118
- - Pass exactly one confirmed problem or one accepted feature proposal per invocation.
192
+ - Pass exactly one confirmed issue or one accepted proposal per invocation.
119
193
  - Prepare evidence or proposal details before calling this skill; do not ask this skill to infer root cause or architecture.
120
194
  - For `problem` issues, pass a `problem-description` that contains `Expected Behavior (BDD)`, `Current Behavior (BDD)`, and `Behavior Gap`; the difference must be explicit, not implied.
121
195
  - Reuse the returned `mode`, `issue_url`, and `publish_error` in the parent skill response.
122
196
  - For accepted feature proposals, pass `--issue-type feature` plus `--proposal`, `--reason`, and `--suggested-architecture`.
197
+ - For security, performance, docs, or observability findings, choose the matching `issue-type` instead of overloading `problem`.
123
198
 
124
199
  ## Resources
125
200
 
@@ -1,4 +1,4 @@
1
1
  interface:
2
2
  display_name: "Open GitHub Issue"
3
- short_description: "Publish structured issues and feature proposals"
4
- default_prompt: "Use $open-github-issue to publish a structured GitHub issue or feature proposal from prepared content, resolve the target repo, detect README language for issue sections, and fall back deterministically from gh CLI to GitHub token to draft-only output."
3
+ short_description: "Publish structured issues across multiple categories"
4
+ default_prompt: "Use $open-github-issue to publish a structured GitHub issue from prepared content, choose the correct issue category such as problem, feature, performance, security, docs, or observability, resolve the target repo, detect README language for issue sections, and fall back deterministically from gh CLI to GitHub token to draft-only output."