@laitszkin/apollo-toolkit 2.10.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.
- package/AGENTS.md +1 -0
- package/CHANGELOG.md +11 -0
- package/README.md +2 -1
- package/archive-specs/SKILL.md +4 -0
- package/commit-and-push/SKILL.md +3 -0
- package/develop-new-features/README.md +1 -0
- package/develop-new-features/SKILL.md +13 -1
- package/develop-new-features/agents/openai.yaml +1 -1
- package/enhance-existing-features/README.md +1 -0
- package/enhance-existing-features/SKILL.md +15 -2
- package/enhance-existing-features/agents/openai.yaml +1 -1
- package/exam-pdf-workflow/LICENSE +21 -0
- package/exam-pdf-workflow/README.md +38 -0
- package/exam-pdf-workflow/SKILL.md +106 -0
- package/exam-pdf-workflow/agents/openai.yaml +4 -0
- package/generate-spec/SKILL.md +5 -0
- package/package.json +1 -1
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.
|
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,17 @@ 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
|
+
|
|
7
18
|
## [v2.10.0] - 2026-03-21
|
|
8
19
|
|
|
9
20
|
### Added
|
package/README.md
CHANGED
|
@@ -14,6 +14,7 @@ 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
|
|
17
18
|
- document-vision-reader
|
|
18
19
|
- enhance-existing-features
|
|
19
20
|
- feature-propose
|
|
@@ -129,7 +130,7 @@ The install commands below were checked with the Skills CLI unless otherwise not
|
|
|
129
130
|
|
|
130
131
|
| Skill name | Used by | Author / producer | Install command / note |
|
|
131
132
|
| --- | --- | --- | --- |
|
|
132
|
-
| `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` |
|
|
133
134
|
| `doc` | `deep-research-topics` (optional Word output) | OpenAI (`openai/skills`) | `npx skills add openai/skills@doc -g -y` |
|
|
134
135
|
| `slides` | `deep-research-topics` (optional slide output) | OpenAI (`openai/skills`) | `npx skills add openai/skills@slides -g -y` |
|
|
135
136
|
| `spreadsheet` | `record-spending` | OpenAI (`openai/skills`) | `npx skills add openai/skills@spreadsheet -g -y` |
|
package/archive-specs/SKILL.md
CHANGED
|
@@ -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
|
|
package/commit-and-push/SKILL.md
CHANGED
|
@@ -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
|
|
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
|
|
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."
|
|
@@ -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.
|
|
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
|
|
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,
|
|
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).
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: exam-pdf-workflow
|
|
3
|
+
description: Create, typeset, and grade exam-style PDF deliverables for study workflows. Use when the user asks to read lecture or exam PDFs, generate mock exams, produce matching solution books, render math-heavy content with KaTeX, or grade completed answer-book PDFs into a scored graded PDF.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Exam PDF Workflow
|
|
7
|
+
|
|
8
|
+
## Dependencies
|
|
9
|
+
|
|
10
|
+
- Required: `pdf` for reading source PDFs, rendering deliverables, and final PDF QA.
|
|
11
|
+
- Conditional: `document-vision-reader` when handwritten answers, scanned pages, or layout-sensitive grading require visual inspection instead of raw text extraction.
|
|
12
|
+
- Conditional: `katex` when the output contains mathematical notation that should be rendered instead of left as raw TeX/plain text.
|
|
13
|
+
- Optional: none.
|
|
14
|
+
- Fallback: If `pdf` is unavailable, stop and report the blocked dependency instead of improvising a text-only workflow.
|
|
15
|
+
|
|
16
|
+
## Standards
|
|
17
|
+
|
|
18
|
+
- Evidence: Read the actual source PDFs and answer-book pages first, and verify any referenced file path against the filesystem before acting.
|
|
19
|
+
- Execution: Decide the task mode first, extract the needed source content, produce the full deliverable set for that mode, then inspect rendered PDFs before finishing.
|
|
20
|
+
- Quality: Treat solution books, math rendering, layout cleanup, and graded-PDF output as default completion criteria when the task implies them; do not leave raw TeX, ambiguous scoring, or unverified PDF layout behind.
|
|
21
|
+
- Output: Save only the requested final PDFs in the target folder and report the exact output paths plus grading or coverage notes.
|
|
22
|
+
|
|
23
|
+
## Overview
|
|
24
|
+
|
|
25
|
+
Use this skill for study-material workflows where PDFs are both the input and the final deliverable. The skill covers source reading, mock-exam authoring, solution generation, math typesetting, handwritten-answer grading, and graded-PDF production.
|
|
26
|
+
|
|
27
|
+
## Workflow
|
|
28
|
+
|
|
29
|
+
### 1) Confirm the real input/output paths
|
|
30
|
+
|
|
31
|
+
- Verify every user-mentioned PDF path on disk before reading it.
|
|
32
|
+
- If the named file is missing but a clearly matching nearby file exists, switch to the real file and state the exact path used.
|
|
33
|
+
- Confirm the target output folder before rendering; create it only when the task requires writing deliverables.
|
|
34
|
+
|
|
35
|
+
### 2) Choose the task mode
|
|
36
|
+
|
|
37
|
+
Pick one primary mode, and combine modes when the user asks for a package:
|
|
38
|
+
|
|
39
|
+
- `source-summary`: read lecture slides, past papers, or error books and extract study notes.
|
|
40
|
+
- `mock-exam`: create a new exam paper modeled on source material or user weaknesses.
|
|
41
|
+
- `solution-book`: produce worked solutions for an exam paper.
|
|
42
|
+
- `grading`: mark a completed answer book and write scores back into a graded PDF.
|
|
43
|
+
- `typesetting-refresh`: improve layout, rebuild formulas with KaTeX, or clean up an existing PDF package.
|
|
44
|
+
|
|
45
|
+
### 3) Read source materials first
|
|
46
|
+
|
|
47
|
+
- Use `pdf` to extract the source exam, lecture slides, marking scheme, error book, or answer book.
|
|
48
|
+
- When the source is handwritten, scanned, or visually complex, use `document-vision-reader` so judgments come from the rendered page rather than noisy OCR alone.
|
|
49
|
+
- Base the output on the actual source artifacts; do not invent syllabus scope, notation, or marking rules when the source does not support them.
|
|
50
|
+
|
|
51
|
+
### 4) Produce the complete deliverable set for the chosen mode
|
|
52
|
+
|
|
53
|
+
#### `mock-exam`
|
|
54
|
+
|
|
55
|
+
- Build the paper around the user's weak topics or the patterns visible in the source materials.
|
|
56
|
+
- Match the source paper's structure, tone, and sectioning closely enough to feel familiar without copying it verbatim.
|
|
57
|
+
- Unless the user explicitly says otherwise, also produce a matching `solution-book` as part of the same task.
|
|
58
|
+
|
|
59
|
+
#### `solution-book`
|
|
60
|
+
|
|
61
|
+
- Give full working, not answer-only stubs.
|
|
62
|
+
- Keep notation and variable names aligned with the paired exam paper.
|
|
63
|
+
- Use concise marking-friendly steps so the solution can also act as the grading reference.
|
|
64
|
+
|
|
65
|
+
#### `grading`
|
|
66
|
+
|
|
67
|
+
- Establish or derive the answer key before assigning scores.
|
|
68
|
+
- Judge each question from the rendered student pages, not from OCR fragments alone when handwriting matters.
|
|
69
|
+
- Write per-question scores and the total score into a new graded PDF rather than only reporting marks in chat.
|
|
70
|
+
- If any page is unreadable or ambiguous, say so explicitly and grade conservatively with a short note.
|
|
71
|
+
|
|
72
|
+
#### `typesetting-refresh`
|
|
73
|
+
|
|
74
|
+
- Improve spacing, pagination, headings, and section breaks so the PDF reads like a clean exam handout.
|
|
75
|
+
- Rebuild all mathematical expressions through `katex` when formulas appear.
|
|
76
|
+
- Do not leave raw TeX, ASCII approximations, or partially rendered formulas in the final PDF.
|
|
77
|
+
|
|
78
|
+
### 5) Render math correctly
|
|
79
|
+
|
|
80
|
+
- When the output includes formulas, invoke `katex` and render the expressions before PDF export.
|
|
81
|
+
- Use display math for multi-step derivations and dense formulas; use inline math only for short expressions.
|
|
82
|
+
- After rendering, visually verify representative pages so symbols, superscripts, fractions, and brackets display correctly.
|
|
83
|
+
|
|
84
|
+
### 6) Run PDF visual QA before finishing
|
|
85
|
+
|
|
86
|
+
- Open the rendered PDFs and inspect representative pages.
|
|
87
|
+
- Always check:
|
|
88
|
+
- the first page
|
|
89
|
+
- one page with dense mathematics
|
|
90
|
+
- one page with longer prose or worked solutions
|
|
91
|
+
- any page with grading annotations when in `grading` mode
|
|
92
|
+
- Confirm that layout is readable, formulas are fully rendered, page breaks are sensible, and annotations are visible.
|
|
93
|
+
- Revise and re-render if math, spacing, or score overlays are unclear.
|
|
94
|
+
|
|
95
|
+
## Default completion rules
|
|
96
|
+
|
|
97
|
+
- If the user asks for a mock exam, default to delivering both the exam PDF and its solution PDF.
|
|
98
|
+
- If the user asks to improve exam formatting and the paper contains formulas, default to KaTeX-rendered math.
|
|
99
|
+
- If the user asks for grading, default to a new graded PDF with visible marks plus a chat summary of per-question scores.
|
|
100
|
+
- If the task is read-only, do not modify files; provide notes only.
|
|
101
|
+
|
|
102
|
+
## Output rules
|
|
103
|
+
|
|
104
|
+
- Keep filenames explicit and stable, for example `... Mock Test.pdf`, `... Solution.pdf`, or `..._graded.pdf`.
|
|
105
|
+
- Store outputs in the user-requested folder when one is given; otherwise reuse the source document's nearby study-material folder.
|
|
106
|
+
- Report the exact final PDF paths and any unresolved ambiguity, such as unreadable handwriting or missing marking guidance.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Exam PDF Workflow"
|
|
3
|
+
short_description: "Create, typeset, and grade exam PDFs with math rendering."
|
|
4
|
+
default_prompt: "Use $exam-pdf-workflow to read exam PDFs, generate mock exams and worked solutions, render math with KaTeX, or grade completed answer-book PDFs into a graded PDF."
|
package/generate-spec/SKILL.md
CHANGED
|
@@ -30,6 +30,9 @@ Own the shared planning-doc lifecycle for feature work so other skills can reuse
|
|
|
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
32
|
- Record the references that should appear in `spec.md`.
|
|
33
|
+
- Inspect existing `docs/plans/` directories before deciding whether to edit an existing plan set.
|
|
34
|
+
- Reuse an existing plan set only when it clearly matches the same requested issue/change scope.
|
|
35
|
+
- If the requested work is adjacent to, but not actually covered by, an existing plan set, create a new directory instead of overwriting the neighboring one.
|
|
33
36
|
|
|
34
37
|
### 2) Generate the planning files
|
|
35
38
|
|
|
@@ -73,6 +76,7 @@ Own the shared planning-doc lifecycle for feature work so other skills can reuse
|
|
|
73
76
|
- Review whether `spec.md`, `tasks.md`, and `checklist.md` must be updated.
|
|
74
77
|
- After any clarification-driven update, obtain explicit approval on the updated spec set again.
|
|
75
78
|
- Do not modify implementation code before approval.
|
|
79
|
+
- When clarification reveals the work is a different issue or materially different scope than the current plan set, stop editing that plan set and generate a new one with a distinct `change_name`.
|
|
76
80
|
|
|
77
81
|
### 7) Backfill after implementation and testing
|
|
78
82
|
|
|
@@ -87,6 +91,7 @@ Own the shared planning-doc lifecycle for feature work so other skills can reuse
|
|
|
87
91
|
- Prefer realistic coverage over boilerplate: add or remove checklist items based on actual risk.
|
|
88
92
|
- Use kebab-case for `change_name`; avoid spaces and special characters.
|
|
89
93
|
- Path rule: `scripts/...` and `references/...` in this file always mean paths under the current skill folder, not the target project root.
|
|
94
|
+
- 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.
|
|
90
95
|
|
|
91
96
|
## References
|
|
92
97
|
|
package/package.json
CHANGED