@laitszkin/apollo-toolkit 2.9.0 → 2.11.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.
Files changed (36) hide show
  1. package/AGENTS.md +3 -1
  2. package/CHANGELOG.md +22 -0
  3. package/README.md +4 -1
  4. package/archive-specs/SKILL.md +4 -0
  5. package/commit-and-push/SKILL.md +3 -0
  6. package/develop-new-features/README.md +1 -0
  7. package/develop-new-features/SKILL.md +13 -1
  8. package/develop-new-features/agents/openai.yaml +1 -1
  9. package/document-vision-reader/LICENSE +21 -0
  10. package/document-vision-reader/README.md +66 -0
  11. package/document-vision-reader/SKILL.md +151 -0
  12. package/document-vision-reader/agents/openai.yaml +4 -0
  13. package/document-vision-reader/references/legibility-checklist.md +13 -0
  14. package/document-vision-reader/references/rendering-guide.md +37 -0
  15. package/enhance-existing-features/README.md +1 -0
  16. package/enhance-existing-features/SKILL.md +15 -2
  17. package/enhance-existing-features/agents/openai.yaml +1 -1
  18. package/exam-pdf-workflow/LICENSE +21 -0
  19. package/exam-pdf-workflow/README.md +38 -0
  20. package/exam-pdf-workflow/SKILL.md +106 -0
  21. package/exam-pdf-workflow/agents/openai.yaml +4 -0
  22. package/generate-spec/SKILL.md +5 -0
  23. package/katex/SKILL.md +92 -0
  24. package/katex/agents/openai.yaml +4 -0
  25. package/katex/references/insertion-patterns.md +54 -0
  26. package/katex/references/official-docs.md +35 -0
  27. package/katex/scripts/render_katex.py +247 -0
  28. package/katex/scripts/render_katex.sh +11 -0
  29. package/learning-error-book/SKILL.md +46 -31
  30. package/learning-error-book/agents/openai.yaml +2 -2
  31. package/learning-error-book/assets/long_question_reference_template.json +57 -0
  32. package/learning-error-book/assets/mc_question_reference_template.json +49 -0
  33. package/learning-error-book/scripts/render_error_book_json_to_pdf.py +590 -0
  34. package/package.json +1 -1
  35. package/learning-error-book/assets/error_book_template.md +0 -66
  36. package/learning-error-book/scripts/render_markdown_to_pdf.py +0 -367
package/AGENTS.md CHANGED
@@ -24,6 +24,7 @@ This repository enables users to install and run a curated set of reusable agent
24
24
  - Users can design and implement new features through a spec-first workflow.
25
25
  - Users can generate shared feature spec, task, and checklist planning artifacts for approval-gated workflows.
26
26
  - Users can convert text or documents into audio files with subtitle timelines.
27
+ - Users can turn lecture slides, past papers, and answer books into mock exams, worked solutions, study notes, or graded PDFs with KaTeX-rendered math.
27
28
  - Users can extend existing features in a brownfield codebase with required tests and approvals.
28
29
  - Users can propose product features from an existing codebase and publish accepted proposals.
29
30
  - Users can discover reproducible edge-case risks and report prioritized hardening gaps.
@@ -31,7 +32,7 @@ This repository enables users to install and run a curated set of reusable agent
31
32
  - Users can run evidence-first application security audits focused on confirmed vulnerabilities.
32
33
  - Users can learn new or improved skills from recent Codex conversation history.
33
34
  - Users can audit and maintain the skill catalog itself, including dependency classification and shared-skill extraction decisions.
34
- - Users can summarize mistakes into a learning error book and render it to PDF.
35
+ - Users can summarize mistakes into separate multiple-choice and long-answer error books backed by structured reference files and rendered PDFs.
35
36
  - Users can build or review marginfi protocol integrations using official SDK, CLI, protocol, and The Arena documentation.
36
37
  - Users can create or maintain `AGENTS.md` so project constraints stay aligned with the repository.
37
38
  - Users can turn novel content into a loopable short-form video with generated assets.
@@ -48,6 +49,7 @@ This repository enables users to install and run a curated set of reusable agent
48
49
  - Users can build and maintain Solana programs and Rust clients using official Solana development workflows.
49
50
  - Users can add focused observability to opaque workflows through targeted logs, metrics, traces, and tests.
50
51
  - Users can build against Jupiter's official Solana swap, token, price, lending, trigger, recurring, and portfolio APIs with an evidence-based development guide.
52
+ - Users can render and embed math formulas with KaTeX using official documentation-backed guidance and reusable rendering scripts.
51
53
  - Users can debug software systematically by reproducing causes, validating fixes, and testing outcomes.
52
54
  - Users can generate 30-60 second short videos directly from text prompts.
53
55
  - Users can prepare and publish versioned releases with changelog and tag workflows.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,28 @@ All notable changes to this repository are documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [v2.11.0] - 2026-03-23
8
+
9
+ ### Added
10
+ - Add `exam-pdf-workflow` for turning lecture slides, past papers, and answer books into mock exams, worked solutions, study notes, or graded PDFs with KaTeX-rendered math when needed.
11
+
12
+ ### Changed
13
+ - Update `develop-new-features` and `enhance-existing-features` so approved spec-backed work must continue through all in-scope tasks, applicable checklist items, testing, and backfill before yielding unless scope changes or an external blocker prevents safe completion.
14
+ - Update `generate-spec` to require creating a distinct plan directory when adjacent work is not actually covered by an existing plan set.
15
+ - Update `archive-specs`, `commit-and-push`, and `version-release` to better distinguish completed planning scope from still-active follow-up work before archiving or conversion.
16
+ - Refresh repository skill inventory and project capability docs to include `exam-pdf-workflow` and its `pdf` dependency.
17
+
18
+ ## [v2.10.0] - 2026-03-21
19
+
20
+ ### Added
21
+ - Add `document-vision-reader` for screenshot-based inspection of rendered documents when visible layout matters more than raw extracted text.
22
+ - Add `katex` for rendering and embedding math formulas with official KaTeX guidance and reusable render scripts.
23
+
24
+ ### Changed
25
+ - Rework `learning-error-book` to generate separate multiple-choice and long-answer reference JSON files plus polished PDFs rendered directly from structured data.
26
+ - Update the repository skill inventory and project capability docs to include the new document-vision and KaTeX workflows.
27
+
28
+
7
29
  ## [v2.9.0] - 2026-03-21
8
30
 
9
31
  ### Changed
package/README.md CHANGED
@@ -14,6 +14,8 @@ A curated skill catalog for Codex, OpenClaw, and Trae with a managed installer t
14
14
  - develop-new-features
15
15
  - discover-edge-cases
16
16
  - docs-to-voice
17
+ - exam-pdf-workflow
18
+ - document-vision-reader
17
19
  - enhance-existing-features
18
20
  - feature-propose
19
21
  - financial-research
@@ -22,6 +24,7 @@ A curated skill catalog for Codex, OpenClaw, and Trae with a managed installer t
22
24
  - harden-app-security
23
25
  - improve-observability
24
26
  - jupiter-development
27
+ - katex
25
28
  - learn-skill-from-conversations
26
29
  - learning-error-book
27
30
  - marginfi-development
@@ -127,7 +130,7 @@ The install commands below were checked with the Skills CLI unless otherwise not
127
130
 
128
131
  | Skill name | Used by | Author / producer | Install command / note |
129
132
  | --- | --- | --- | --- |
130
- | `pdf` | `deep-research-topics`, `financial-research`, `learning-error-book`, `weekly-financial-event-report` | OpenAI (`openai/skills`) | `npx skills add openai/skills@pdf -g -y` |
133
+ | `pdf` | `deep-research-topics`, `exam-pdf-workflow`, `financial-research`, `learning-error-book`, `weekly-financial-event-report` | OpenAI (`openai/skills`) | `npx skills add openai/skills@pdf -g -y` |
131
134
  | `doc` | `deep-research-topics` (optional Word output) | OpenAI (`openai/skills`) | `npx skills add openai/skills@doc -g -y` |
132
135
  | `slides` | `deep-research-topics` (optional slide output) | OpenAI (`openai/skills`) | `npx skills add openai/skills@slides -g -y` |
133
136
  | `spreadsheet` | `record-spending` | OpenAI (`openai/skills`) | `npx skills add openai/skills@spreadsheet -g -y` |
@@ -40,6 +40,7 @@ Convert completed planning artifacts into stable, standardized project documenta
40
40
  4. existing docs
41
41
  - When specs disagree with the codebase, keep the codebase truth and note the mismatch while updating docs.
42
42
  - Merge repeated or overlapping feature descriptions into one stable capability summary.
43
+ - Distinguish between completed scope that should become durable docs and still-active scope that remains planning material for follow-up work.
43
44
 
44
45
  ### 3) Standardize existing project docs into categorized outputs
45
46
 
@@ -91,6 +92,8 @@ Ensure the split project docs cover all of the following:
91
92
  - Prefer moving the consumed `spec.md`, `tasks.md`, and `checklist.md` files, or their containing plan directory, into a clearly marked archive path instead of leaving them mixed with active docs.
92
93
  - Delete converted spec files only when the repository clearly does not need historical retention.
93
94
  - Do not archive or delete any spec file that is still actively needed for unfinished implementation work.
95
+ - Treat a spec file as active when it still records pending gaps, planned later phases, follow-up integration work, or unresolved design decisions for the same change, even if one implementation commit has already shipped.
96
+ - If only part of a plan set is complete, convert or summarize only the truly completed scope and leave the active plan set in place unless the repository has a separate archival convention for partial phases.
94
97
 
95
98
  ## Working Rules
96
99
 
@@ -99,6 +102,7 @@ Ensure the split project docs cover all of the following:
99
102
  - Do not copy speculative roadmap items from specs into the main docs as if they already exist.
100
103
  - When a section cannot be completed from evidence, keep an explicit `Unknown` or `TBD (missing repository evidence)` marker.
101
104
  - The final repository state should not keep both standardized docs and redundant active spec files for the same completed scope.
105
+ - Do not equate "code was committed" with "planning scope is complete"; archive only when the remaining notes no longer guide future implementation.
102
106
 
103
107
  ## References
104
108
 
@@ -42,6 +42,7 @@ Load only when needed:
42
42
  - `repo-specs-present`: the repository contains live project planning artifacts such as `spec.md`, `tasks.md`, `checklist.md`, or plan directories; exclude reference examples, templates, and archived samples.
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
+ - 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.
45
46
  3. Run code-affecting dependency skills (when applicable)
46
47
  - Run `review-change-set`, `discover-edge-cases`, and `harden-app-security` for the same code-affecting scope when their coverage is needed.
47
48
  - Consolidate and resolve all confirmed findings before continuing.
@@ -52,6 +53,7 @@ Load only when needed:
52
53
  - Let the skill normalize any existing project docs to the same structure and archive superseded source spec files.
53
54
  - Do not treat unchecked task or decision checkboxes alone as blocking unfinished work; read the surrounding notes and requirement status semantically.
54
55
  - 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
+ - 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.
55
57
  5. Run pre-commit sync dependencies
56
58
  - Execute `align-project-documents` after spec conversion and code/doc scans are complete.
57
59
  - Execute `maintain-project-constraints` immediately before the commit.
@@ -70,3 +72,4 @@ Load only when needed:
70
72
  - Never run version bump, tag creation, or changelog release steps in this skill.
71
73
  - If release/version/tag work is requested, use `version-release` instead.
72
74
  - If a new branch is required, follow `references/branch-naming.md`.
75
+ - A pushed implementation can still leave an active spec set behind; commit completion and spec archival are separate decisions.
@@ -9,6 +9,7 @@ A spec-first feature development skill for new behavior and greenfield work. It
9
9
  - Covers unit, regression, property-based, integration, E2E, and adversarial testing based on actual risk.
10
10
  - Reuses existing architecture and avoids speculative expansion.
11
11
  - Backfills `spec.md`, `tasks.md`, and `checklist.md` after implementation and testing complete.
12
+ - Once approval is granted and implementation starts, finishes all in-scope planned tasks and applicable checklist items before yielding unless the user defers work or an external blocker prevents safe completion.
12
13
 
13
14
  ## Repository layout
14
15
 
@@ -6,6 +6,9 @@ description: >-
6
6
  coding, then implements the approved feature with risk-driven test coverage.
7
7
  Use when users ask to design or implement new features, change product
8
8
  behavior, request a planning-first process, or ask for a greenfield feature.
9
+ Once the approved spec set exists and implementation begins, complete all
10
+ planned tasks and applicable checklist items before yielding unless the user
11
+ changes scope or an external blocker prevents safe completion.
9
12
  Tests must not stop at happy-path validation: for business-logic changes
10
13
  require property-based testing unless explicitly `N/A` with reason, design
11
14
  adversarial/regression/authorization/idempotency/concurrency coverage where
@@ -25,7 +28,7 @@ description: >-
25
28
  ## Standards
26
29
 
27
30
  - Evidence: Review authoritative docs and the existing codebase before planning or implementation.
28
- - Execution: Run `generate-spec` for every new feature or product-behavior change, obtain approval, then implement minimally.
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.
29
32
  - Quality: Add risk-based tests with property-based, regression, integration, E2E, adversarial, and rollback coverage when relevant.
30
33
  - Output: Keep the approved planning artifacts and the final implementation aligned with actual completion results.
31
34
 
@@ -64,6 +67,13 @@ Use a shared spec-generation workflow for all new feature work, then implement t
64
67
  - Reuse existing patterns and abstractions when possible.
65
68
  - Keep changes focused and avoid speculative scope expansion.
66
69
  - Update environment examples only when new inputs are actually required.
70
+ - Once approval is granted and implementation starts, treat every unchecked in-scope item in `tasks.md` and every applicable item in `checklist.md` as required work for this run.
71
+ - Do not stop after a partial implementation, partial test pass, or partial doc backfill when work remains in the approved plan.
72
+ - Only pause before completion if:
73
+ - the user changes scope or explicitly asks to stop
74
+ - a new clarification invalidates the approved plan and requires renewed approval
75
+ - an external blocker (missing credentials, unavailable dependency, access restriction, broken upstream system) prevents safe completion
76
+ - When blocked, record the exact unfinished items and blocker in the plan artifacts before yielding.
67
77
 
68
78
  ### 5) Testing coverage (required)
69
79
 
@@ -88,6 +98,7 @@ Rules:
88
98
 
89
99
  - Backfill `spec.md`, `tasks.md`, and `checklist.md` through `$generate-spec` workflow after implementation and testing.
90
100
  - 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.
91
102
  - Report the implemented scope, test execution, and any concrete `N/A` reasons.
92
103
 
93
104
  ## Working Rules
@@ -96,6 +107,7 @@ Rules:
96
107
  - Keep implementation traceable to approved requirement IDs and planned risks.
97
108
  - Prefer realism over rigid templates: add or remove test coverage only when the risk profile justifies it.
98
109
  - Every planned test should justify a distinct risk; remove shallow duplicates that only prove the code "still runs".
110
+ - 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.
99
111
 
100
112
  ## References
101
113
 
@@ -1,4 +1,4 @@
1
1
  interface:
2
2
  display_name: "Develop New Features"
3
3
  short_description: "Spec-first feature development that depends on generate-spec"
4
- default_prompt: "Use $develop-new-features to design new behavior through a spec-first workflow: review the required external docs, run $generate-spec to create and maintain docs/plans/<date>_<change_name>/{spec.md,tasks.md,checklist.md}, wait for explicit approval, then implement the approved feature with risk-driven tests and backfill spec.md, tasks.md, and checklist.md after execution, including requirement completion status in spec.md."
4
+ default_prompt: "Use $develop-new-features to design new behavior through a spec-first workflow: review the required external docs, run $generate-spec to create and maintain docs/plans/<date>_<change_name>/{spec.md,tasks.md,checklist.md}, wait for explicit approval, then complete the approved implementation end-to-end with risk-driven tests and full backfill of spec.md, tasks.md, and checklist.md before yielding, unless the user changes scope or an external blocker prevents safe completion."
@@ -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,66 @@
1
+ # Document Vision Reader
2
+
3
+ A visual-reading skill for non-plain-text files that should be checked from their rendered appearance instead of raw text extraction.
4
+
5
+ ## What this skill does
6
+
7
+ - Creates a temporary screenshot workspace for the target file.
8
+ - Converts or captures the requested pages/regions into temporary images.
9
+ - Reads those images as the evidence source.
10
+ - Answers user requests such as summaries, transcription, field lookup, table extraction, comparison, and translation from the visible content.
11
+ - Cleans up temporary screenshots by default after the answer is prepared.
12
+
13
+ ## Best-fit use cases
14
+
15
+ - scanned PDFs
16
+ - rendered PDF files
17
+ - rendered PPT/PPTX slides
18
+ - receipts, invoices, and forms
19
+ - slide decks with annotations or visual emphasis
20
+ - documents where highlights, layout, handwriting, or stamps matter
21
+ - spreadsheets where merged cells or formatting affect meaning
22
+ - files whose text extraction is unreliable
23
+ - not plain-text files whose meaning depends on visual rendering
24
+
25
+ ## Repository layout
26
+
27
+ ```text
28
+ .
29
+ ├── SKILL.md
30
+ ├── README.md
31
+ ├── LICENSE
32
+ ├── agents/
33
+ │ └── openai.yaml
34
+ └── references/
35
+ ├── legibility-checklist.md
36
+ └── rendering-guide.md
37
+ ```
38
+
39
+ ## Usage
40
+
41
+ ```text
42
+ Use $document-vision-reader to inspect this non-plain-text file by turning its rendered pages into temporary screenshots, reading the screenshots as images, and answering from the visible content only.
43
+ ```
44
+
45
+ Example requests:
46
+
47
+ ```text
48
+ Use $document-vision-reader to inspect pages 3-5 of this scanned PDF, extract the totals table, and flag any handwritten notes.
49
+ ```
50
+
51
+ ```text
52
+ Use $document-vision-reader to capture the rendered slides of this PPTX as temporary screenshots, read them visually, and tell me whether the key metrics on slide 7 match slide 12.
53
+ ```
54
+
55
+ ## Output expectations
56
+
57
+ A good result should include:
58
+
59
+ 1. the direct answer to the user's request
60
+ 2. which screenshots/pages were used
61
+ 3. any visibility limits or unreadable regions
62
+ 4. whether the temporary screenshot directory was removed or preserved
63
+
64
+ ## License
65
+
66
+ MIT. See `LICENSE`.
@@ -0,0 +1,151 @@
1
+ ---
2
+ name: document-vision-reader
3
+ description: Convert rendered non-plain-text files into temporary screenshots, inspect those screenshots as images, and answer the user's request from the visible visual output. Use when an agent needs to inspect PDFs, PPT/PPTX decks, scanned documents, forms, spreadsheets, or other files whose rendered appearance matters more than raw text extraction.
4
+ ---
5
+
6
+ # Document Vision Reader
7
+
8
+ ## Dependencies
9
+
10
+ - Required: none.
11
+ - Conditional: `screenshot` when the host needs OS-level captures; `pdf`, `doc`, `pptx`, or `spreadsheet` when the source file needs format-specific rendering before screenshot capture.
12
+ - Optional: none.
13
+ - Fallback: If the file cannot be rendered or captured safely, ask the user for the relevant screenshots/pages instead of guessing from inaccessible content.
14
+
15
+ ## Standards
16
+
17
+ - Evidence: Base every conclusion on visible screenshot content only; call out blur, clipping, hidden areas, and unreadable regions explicitly.
18
+ - Execution: Create a temporary screenshot workspace, capture only the pages/regions needed, inspect the images, answer the request, and remove temporary artifacts unless the user asked to keep them.
19
+ - Quality: Prefer legible crops over full-page miniatures, keep screenshot naming deterministic, and verify that every requested page or region was actually reviewed.
20
+ - Output: Return the user-facing answer plus the screenshot coverage used, any visibility limits, and whether temporary files were cleaned up.
21
+
22
+ ## Goal
23
+
24
+ Use visual reading as the source of truth when the target file is not a plain-text artifact and the rendered appearance matters more than extractable text.
25
+
26
+ Typical cases:
27
+
28
+ - scanned PDFs or image-only files
29
+ - PDF reports, statements, and forms
30
+ - PPT/PPTX slides that must be checked as rendered pages
31
+ - forms, receipts, invoices, and reports with layout cues
32
+ - slides or documents where comments, highlights, colors, callouts, or alignment matter
33
+ - spreadsheets where merged cells, visual grouping, or formatting affects interpretation
34
+ - cases where raw text extraction is incomplete, broken, or misleading
35
+
36
+ Do not use this skill for plain-text files when normal text reading is sufficient.
37
+
38
+ ## Workflow
39
+
40
+ ### 1) Confirm scope and output target
41
+
42
+ Before capturing anything, determine:
43
+
44
+ - which file or files must be inspected
45
+ - what the user actually needs (summary, transcription, table extraction, comparison, QA, translation, field lookup, etc.)
46
+ - which pages, slides, sheets, or regions matter most
47
+ - whether the user needs the temporary screenshots returned or only used internally
48
+
49
+ If the file is long, capture only the requested pages or the smallest range needed to answer correctly.
50
+
51
+ ### 2) Create a temporary screenshot workspace
52
+
53
+ Create a dedicated temporary directory, for example:
54
+
55
+ ```bash
56
+ TMP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/document-vision-reader.XXXXXX")"
57
+ ```
58
+
59
+ Inside that directory, keep deterministic names such as:
60
+
61
+ - `page-001.png`
62
+ - `page-002-top.png`
63
+ - `slide-004-notes.png`
64
+ - `sheet-budget-row-01.png`
65
+
66
+ Do not write temporary screenshots into the user's project unless they explicitly ask for that.
67
+
68
+ ### 3) Render the document into screenshots
69
+
70
+ Use the most reliable renderer available for the source format.
71
+
72
+ - PDFs or scans: render requested pages to images first, then inspect those images.
73
+ - DOCX/PPTX/XLSX and similar office files: open a rendered view and capture screenshots from the visual output rather than trusting raw XML/text extraction.
74
+ - Existing images: copy or convert into a readable PNG/JPEG only when needed.
75
+ - Large pages or dense tables: use multiple crops instead of shrinking the entire page until text becomes unreadable.
76
+
77
+ Prefer format-specific helper skills when they improve rendering fidelity:
78
+
79
+ - `pdf` for PDF page handling
80
+ - `doc` for Word-like documents
81
+ - `pptx` for slides
82
+ - `spreadsheet` for sheets/tables
83
+ - `screenshot` for OS-level capture when no direct renderer is available
84
+
85
+ If rendering tooling is missing, stop and ask for the minimal set of screenshots or pages needed.
86
+
87
+ ### 4) Verify screenshot legibility before reading
88
+
89
+ Check every capture before extracting facts.
90
+
91
+ - Zoom or recapture if body text is not comfortably readable.
92
+ - Split one dense page into multiple overlapping crops when needed.
93
+ - Keep labels, units, headers, and nearby notes in frame so interpretation stays grounded.
94
+ - If a section is truncated or hidden, do not infer the missing content.
95
+
96
+ Use `references/legibility-checklist.md` when a page is crowded or the answer depends on small details.
97
+
98
+ ### 5) Read screenshots as images
99
+
100
+ Read the screenshots with image-capable tools only after the captures are ready.
101
+
102
+ - Inspect the actual rendered content, not an assumed underlying text layer.
103
+ - Treat handwriting, highlights, annotations, stamps, signatures, and color coding as first-class evidence when visible.
104
+ - For tables, verify row/column alignment from the image before extracting values.
105
+ - For multi-page answers, track which screenshot supports each claim.
106
+
107
+ When the answer depends on multiple screenshots, reconcile them explicitly instead of paraphrasing from memory.
108
+
109
+ ### 6) Answer the user's request
110
+
111
+ In the response:
112
+
113
+ - answer the requested task directly
114
+ - note which screenshots/pages were used
115
+ - call out any uncertain or unreadable sections
116
+ - distinguish visible facts from interpretation
117
+
118
+ If the user asked for extraction, structure the output so it can be checked against the screenshots.
119
+
120
+ ### 7) Clean up temporary files
121
+
122
+ After the answer is prepared:
123
+
124
+ - delete the temporary screenshot directory by default
125
+ - keep it only when the user explicitly wants the screenshots, a reusable artifact, or a debugging trail
126
+ - if cleanup fails, report the leftover path so it can be removed later
127
+
128
+ ## Decision Rules
129
+
130
+ - Prefer screenshot reading whenever visual layout changes meaning.
131
+ - Prefer this skill for rendered non-plain-text files such as PDF and PPT/PPTX.
132
+ - Do not use this skill when a plain-text source can be read directly without losing meaning.
133
+ - Prefer the smallest sufficient capture set; avoid screenshotting an entire long document when the user only asked about one section.
134
+ - Prefer multiple readable crops over one unreadable full-page image.
135
+ - Never invent text hidden outside the visible capture.
136
+ - If screenshots and extracted text disagree, trust the visible screenshot and mention the mismatch.
137
+
138
+ ## Output Checklist
139
+
140
+ Before finishing, confirm all of the following:
141
+
142
+ - the requested pages/regions were actually captured
143
+ - the screenshots were legible enough for the requested task
144
+ - the final answer is grounded in visible content
145
+ - uncertainty or occlusion is disclosed
146
+ - temporary artifacts were deleted or intentionally preserved
147
+
148
+ ## Resources
149
+
150
+ - `references/rendering-guide.md`: format-by-format screenshot staging guidance.
151
+ - `references/legibility-checklist.md`: quick quality gate for readable visual extraction.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Document Vision Reader"
3
+ short_description: "Read rendered PDF/PPT-like files through temporary screenshots"
4
+ default_prompt: "Use $document-vision-reader when I need to inspect a non-plain-text rendered file such as PDF or PPT/PPTX, create temporary screenshots for the relevant pages or regions, inspect those screenshots as images instead of trusting raw text extraction, answer from visible content only, and clean up the temporary screenshot workspace unless I ask to keep it."
@@ -0,0 +1,13 @@
1
+ # Legibility Checklist
2
+
3
+ Before answering from screenshots, confirm:
4
+
5
+ - text is readable without guessing
6
+ - important numbers and decimal places are visible
7
+ - row and column boundaries are clear for tables
8
+ - annotations, highlights, stamps, and signatures are not clipped
9
+ - the capture includes enough surrounding context to interpret the target content
10
+ - overlapping crops cover any area split across captures
11
+ - page or slide identity is trackable from the filename or nearby context
12
+
13
+ If any item fails, recapture before answering.
@@ -0,0 +1,37 @@
1
+ # Rendering Guide
2
+
3
+ Use the smallest reliable rendering path that preserves what the user needs to inspect.
4
+
5
+ ## PDF or scanned document
6
+
7
+ - Capture only the requested pages first.
8
+ - If a full page becomes unreadable when scaled down, split it into overlapping crops.
9
+ - Preserve headers, footers, totals, and marginal notes when they affect interpretation.
10
+
11
+ ## DOCX or rich-text document
12
+
13
+ - Read from a rendered page view, not raw XML text.
14
+ - Preserve comments, highlights, tracked-style decorations, and side notes when visible.
15
+ - Capture section-by-section when the page is text dense.
16
+
17
+ ## PPTX or slide deck
18
+
19
+ - Capture slide canvases at a readable scale.
20
+ - Include presenter notes only if the user asks for them or they are needed to answer.
21
+ - When diagrams are dense, take one full-slide capture plus zoomed crops for detailed regions.
22
+
23
+ ## Spreadsheet
24
+
25
+ - Keep row labels, column headers, and units visible in the same capture.
26
+ - Use overlapping viewport captures for wide tables.
27
+ - If color coding or conditional formatting matters, mention it explicitly in the answer.
28
+
29
+ ## Existing image file
30
+
31
+ - Reuse the original image when it is already readable.
32
+ - Convert only when the target tool requires a different format.
33
+
34
+ ## General fallback
35
+
36
+ - If no reliable renderer is available, ask the user for the specific screenshots needed.
37
+ - Do not claim coverage for pages or regions that were never captured.
@@ -9,6 +9,7 @@ A brownfield feature-extension skill: map dependencies first, decide whether sha
9
9
  - Requires explicit approval before coding when specs are generated.
10
10
  - Still requires meaningful tests even when specs are skipped.
11
11
  - Keeps brownfield changes focused and traceable.
12
+ - When specs exist and are approved, finishes all in-scope planned tasks and applicable checklist items before yielding unless the user defers work or an external blocker prevents safe completion.
12
13
 
13
14
  ## Repository layout
14
15
 
@@ -5,7 +5,10 @@ description: >-
5
5
  the codebase first, then decide from the user's requested change whether
6
6
  specs (`spec.md`/`tasks.md`/`checklist.md`) are required before coding. When
7
7
  specs are required, depend on `generate-spec` for the shared planning,
8
- clarification, approval, and backfill workflow. Even when specs are not
8
+ clarification, approval, and backfill workflow. If a spec set exists and is
9
+ approved, complete all planned tasks and applicable checklist items before
10
+ yielding unless the user changes scope or an external blocker prevents safe
11
+ completion. Even when specs are not
9
12
  required, still add and run related tests for
10
13
  unit/property-based/user-critical integration chain/E2E coverage. Tests must
11
14
  not stop at happy-path validation: for business-logic changes require
@@ -27,7 +30,7 @@ description: >-
27
30
  ## Standards
28
31
 
29
32
  - Evidence: Explore the existing codebase first and verify the latest authoritative docs for the involved stack or integrations.
30
- - Execution: Decide whether specs are required from the actual change surface, run `generate-spec` when needed, then implement minimally.
33
+ - Execution: Decide whether specs are required from the actual change surface, run `generate-spec` when needed, then continue through implementation, testing, and backfill until the active scope is fully reconciled.
31
34
  - Quality: Add risk-based tests with property-based, regression, integration, E2E, adversarial, and rollback coverage when relevant.
32
35
  - Output: Keep implementation and any planning artifacts traceable, updated, and aligned with actual completion results.
33
36
 
@@ -62,6 +65,7 @@ If triggered:
62
65
  - After implementation and testing, update the same plan set so `spec.md` reflects requirement completion status in addition to task and checklist progress.
63
66
  - If users answer clarification questions, update the planning docs and obtain explicit approval again before implementation.
64
67
  - Do not modify implementation code before approval.
68
+ - Once approval is granted, do not stop with unchecked in-scope items remaining in `tasks.md` or applicable unchecked items in `checklist.md` unless the user explicitly defers them or an external blocker prevents safe completion.
65
69
 
66
70
  If not triggered:
67
71
  - Continue directly with the same downstream workflow below.
@@ -79,6 +83,13 @@ If not triggered:
79
83
  - Keep changes focused and minimal; preserve current behavior unless required.
80
84
  - Follow project conventions (naming, linting, formatting, configuration).
81
85
  - Update environment examples only when new inputs are required.
86
+ - If specs exist, treat every unchecked in-scope task and applicable checklist item as part of the required deliverable for this run.
87
+ - Do not stop after partial code changes, partial tests, or partial backfill when approved planned work remains.
88
+ - Only pause before completion if:
89
+ - the user changes scope or explicitly asks to stop
90
+ - new clarification requires plan updates and renewed approval
91
+ - an external blocker (missing credentials, unavailable dependency, access restriction, broken upstream system) prevents safe completion
92
+ - When blocked, record the exact unfinished items and blocker in the spec set before yielding.
82
93
 
83
94
  ### 5) Testing coverage (required with or without specs)
84
95
 
@@ -103,6 +114,7 @@ Rules:
103
114
 
104
115
  - If specs were used, backfill `spec.md`, `tasks.md`, and `checklist.md` through `$generate-spec` workflow based on actual completion and test outcomes.
105
116
  - 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.
117
+ - 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.
106
118
  - 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.
107
119
 
108
120
  ## Working Rules
@@ -112,6 +124,7 @@ Rules:
112
124
  - Maintain traceability between requirements, tasks, and tests when specs are present.
113
125
  - Treat checklists as living artifacts: adjust items to match real change scope.
114
126
  - Every planned test should justify a distinct risk; remove shallow duplicates that only prove the code "still runs".
127
+ - 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.
115
128
 
116
129
  ## References
117
130
 
@@ -1,4 +1,4 @@
1
1
  interface:
2
2
  display_name: "enhance-existing-features"
3
3
  short_description: "Extend brownfield features with conditional generate-spec planning and risk-driven tests"
4
- default_prompt: "Use $enhance-existing-features to extend a brownfield feature: map the affected code and dependencies first, decide whether the change is high complexity / critical module / cross-module, run $generate-spec when specs are required, wait for explicit approval before coding, and always add risk-driven tests plus clear N/A reasons when a category truly does not apply, then backfill spec.md, tasks.md, and checklist.md when a spec set exists, including requirement completion status in spec.md."
4
+ default_prompt: "Use $enhance-existing-features to extend a brownfield feature: map the affected code and dependencies first, decide whether the change is high complexity / critical module / cross-module, run $generate-spec when specs are required, wait for explicit approval before coding, and always add risk-driven tests plus clear N/A reasons when a category truly does not apply; if a spec set exists, finish the approved tasks and applicable checklist items and backfill spec.md, tasks.md, and checklist.md before yielding unless the user changes scope or an external blocker prevents safe completion."
@@ -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,38 @@
1
+ # Exam PDF Workflow Skill
2
+
3
+ ## Brief Introduction
4
+
5
+ An agent skill for study-material workflows that read source PDFs, generate mock exams and worked solutions, render math with KaTeX, and grade completed answer-book PDFs into scored graded PDFs.
6
+
7
+ ## Problems this skill solves
8
+
9
+ Use this skill when:
10
+
11
+ - lecture slides, past papers, or error books need to be turned into study notes or a new mock exam
12
+ - an exam PDF needs a matching solution book by default
13
+ - math-heavy PDFs need clean KaTeX-rendered formulas instead of raw TeX/plain text
14
+ - handwritten or scanned answer books need visual grading and a graded PDF output
15
+ - an existing exam PDF package needs layout cleanup before delivery
16
+
17
+ ## Invocation rule
18
+
19
+ Invoke this skill when the request involves exam-style PDFs, question books, answer books, lecture-slide study packs, grading, or math-heavy educational PDF generation.
20
+
21
+ ## Core method
22
+
23
+ 1. Verify the real source and output paths.
24
+ 2. Read the source PDFs and choose the task mode.
25
+ 3. Produce the full deliverable set for that mode.
26
+ 4. Render formulas with KaTeX when math appears.
27
+ 5. Visually inspect the final PDFs before finishing.
28
+
29
+ ## Typical deliverables
30
+
31
+ - Mock exam PDF
32
+ - Worked solution PDF
33
+ - Graded answer-book PDF
34
+ - Study-note summary extracted from lecture/exam PDFs
35
+
36
+ ## License
37
+
38
+ This project is licensed under the [MIT License](LICENSE).