kotonoha 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/README.md +95 -20
- package/bin/kotonoha.js +81 -13
- package/package.json +7 -3
- package/skills/presentation-planner/SKILL.md +243 -0
- package/skills/presentation-planner/assets/design-templates/data-report.yaml +97 -0
- package/skills/presentation-planner/assets/design-templates/executive-proposal.yaml +92 -0
- package/skills/presentation-planner/assets/design-templates/technical-briefing.yaml +96 -0
- package/skills/presentation-planner/assets/scenario-templates/data-report.md +47 -0
- package/skills/presentation-planner/assets/scenario-templates/executive-decision.md +43 -0
- package/skills/presentation-planner/assets/scenario-templates/technical-briefing.md +45 -0
- package/skills/presentation-planner/references/customizing-design-templates.md +160 -0
- package/skills/presentation-planner/references/design-spec-schema.md +72 -0
- package/skills/presentation-planner/references/handoff-contract.md +49 -0
- package/skills/presentation-planner/references/responsibility-boundary.md +32 -0
- package/skills/presentation-planner/references/scenario-templates.md +55 -0
- package/skills/tech-writer/SKILL.md +57 -16
- package/skills/tech-writer/assets/templates/migration-plan.md +173 -0
- package/skills/tech-writer/assets/templates/operations-runbook.md +202 -0
- package/skills/tech-writer/assets/templates/requirements-definition.md +170 -0
- package/skills/tech-writer/assets/templates/rfi.md +113 -0
- package/skills/tech-writer/assets/templates/rfp.md +180 -0
- package/skills/tech-writer/assets/templates/security-design.md +167 -0
- package/skills/tech-writer/assets/templates/system-design.md +220 -0
- package/skills/tech-writer/assets/templates/technical-proposal.md +112 -0
- package/skills/tech-writer/assets/templates/test-plan.md +153 -0
- package/skills/tech-writer/references/doctypes/migration-plan.md +63 -0
- package/skills/tech-writer/references/doctypes/operations-runbook.md +63 -0
- package/skills/tech-writer/references/doctypes/requirements-definition.md +61 -0
- package/skills/tech-writer/references/doctypes/rfi.md +43 -0
- package/skills/tech-writer/references/doctypes/rfp.md +46 -0
- package/skills/tech-writer/references/doctypes/security-design.md +71 -0
- package/skills/tech-writer/references/doctypes/system-design.md +74 -0
- package/skills/tech-writer/references/doctypes/technical-proposal.md +49 -0
- package/skills/tech-writer/references/doctypes/test-plan.md +67 -0
- package/skills/tech-writer/references/style-constitution.md +7 -6
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,34 @@ All notable changes to this project are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.1.4] - 2026-09-29
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Add Japanese requirements-definition and system-design templates with
|
|
15
|
+
doctype routing, responsibility boundaries, traceability, and review
|
|
16
|
+
checklists.
|
|
17
|
+
- Add Japanese test-plan, operations-runbook, migration-plan, and
|
|
18
|
+
security-design/threat-model templates with dedicated doctype guidance
|
|
19
|
+
and review checklists.
|
|
20
|
+
- Add the `presentation-planner` skill for presentation requirements,
|
|
21
|
+
storyline, slide outlines, design specifications, and PPTX-skill handoff.
|
|
22
|
+
- Add executive decision, technical briefing, and data report presentation
|
|
23
|
+
scenario templates plus a `presentation-scenario.md` planning artifact.
|
|
24
|
+
- Add executive proposal, technical briefing, and data report design
|
|
25
|
+
specifications in YAML.
|
|
26
|
+
- Standardize presentation designs on white backgrounds with Microsoft
|
|
27
|
+
corporate colors and accessible dark semantic text colors.
|
|
28
|
+
- Add a guide for adapting design specifications and adding reusable
|
|
29
|
+
presentation templates.
|
|
30
|
+
- Add multi-skill installation with `kotonoha install --skill <name|all>`.
|
|
31
|
+
- Add Japanese templates for technical proposals, requests for information
|
|
32
|
+
(RFI), and requests for proposal (RFP).
|
|
33
|
+
- Add doctype routing, writing guidance, and checklists for the three new
|
|
34
|
+
templates.
|
|
35
|
+
|
|
8
36
|
## [0.1.2] - 2026-09-29
|
|
9
37
|
|
|
10
38
|
### Added
|
|
@@ -45,3 +73,5 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
45
73
|
[0.1.2]: https://github.com/nahisaho/kotonoha/compare/v0.1.1...v0.1.2
|
|
46
74
|
[0.1.1]: https://github.com/nahisaho/kotonoha/compare/v0.1.0...v0.1.1
|
|
47
75
|
[0.1.0]: https://github.com/nahisaho/kotonoha/releases/tag/v0.1.0
|
|
76
|
+
[0.1.4]: https://github.com/nahisaho/kotonoha/compare/v0.1.2...v0.1.4
|
|
77
|
+
[Unreleased]: https://github.com/nahisaho/kotonoha/compare/v0.1.4...HEAD
|
package/README.md
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
# kotonoha
|
|
2
2
|
|
|
3
|
-
kotonoha provides
|
|
4
|
-
|
|
3
|
+
kotonoha provides GitHub Copilot CLI skills for technical documents and
|
|
4
|
+
presentation planning. `tech-writer` helps structure and polish README, design
|
|
5
5
|
docs/ADRs, API reference, PR descriptions/commit messages/issue reports,
|
|
6
|
-
release notes, user manuals/how-to guides, code comments,
|
|
7
|
-
|
|
6
|
+
release notes, user manuals/how-to guides, code comments, requirements
|
|
7
|
+
definitions, system designs, test plans, operations runbooks, migration plans,
|
|
8
|
+
security designs, technical proposals, RFI/RFP procurement documents, and
|
|
9
|
+
Qiita/Zenn articles,
|
|
10
|
+
structured so readers never get lost. `presentation-planner` turns source
|
|
11
|
+
material into a reusable presentation scenario, slide outline, design
|
|
12
|
+
specification, and handoff for a dedicated PPTX creation skill.
|
|
8
13
|
|
|
9
14
|
## What tech-writer solves
|
|
10
15
|
|
|
@@ -20,7 +25,9 @@ Japanese prose with natural-japanese.
|
|
|
20
25
|
|
|
21
26
|
- Create/review README, design docs/ADRs, API reference, PR
|
|
22
27
|
descriptions/commit messages/issue reports, release notes, user manuals,
|
|
23
|
-
code comments,
|
|
28
|
+
code comments, requirements definitions, system designs, test plans,
|
|
29
|
+
operations runbooks, migration plans, security designs, technical proposals,
|
|
30
|
+
RFI/RFP procurement documents, and Qiita/Zenn articles
|
|
24
31
|
- Doctype-specific structure and checklists to guide writing
|
|
25
32
|
- Iterative rubber-duck review after document creation, with fixes and
|
|
26
33
|
re-review until no actionable findings remain; unavailable reviews are
|
|
@@ -35,6 +42,49 @@ Japanese prose with natural-japanese.
|
|
|
35
42
|
(the target programming language's own syntax)
|
|
36
43
|
- Japanese as the primary target language, with English document support
|
|
37
44
|
|
|
45
|
+
## Supported document types
|
|
46
|
+
|
|
47
|
+
| Document type | Examples | Doctype |
|
|
48
|
+
|---|---|---|
|
|
49
|
+
| Project overview | README | `readme` |
|
|
50
|
+
| Design decision | Design doc, ADR, RFC | `design-doc` |
|
|
51
|
+
| Requirements definition | 要件定義書, functional and non-functional requirements | `requirements-definition` |
|
|
52
|
+
| System design | システム設計書, architecture and detailed system design | `system-design` |
|
|
53
|
+
| Test planning | テスト計画書, test strategy and acceptance evidence | `test-plan` |
|
|
54
|
+
| Operations | 運用設計書, operations runbook, incident procedures | `operations-runbook` |
|
|
55
|
+
| Migration | 移行計画書, data and system cutover plan | `migration-plan` |
|
|
56
|
+
| Security | セキュリティ設計書, threat model | `security-design` |
|
|
57
|
+
| API reference | REST API, events, SDK reference | `api-docs` |
|
|
58
|
+
| Development workflow text | PR description, commit message, bug report, feature request | `pr-commit` |
|
|
59
|
+
| Release documentation | Release notes, CHANGELOG | `release-notes` |
|
|
60
|
+
| User guidance | User manual, how-to guide, tutorial | `user-manual` |
|
|
61
|
+
| Source documentation | Code comments, docstrings | `code-comments` |
|
|
62
|
+
| Internal technical proposal | Architecture, investment, and delivery proposal | `technical-proposal` |
|
|
63
|
+
| Request for information | RFI | `rfi` |
|
|
64
|
+
| Request for proposal | RFP | `rfp` |
|
|
65
|
+
| Technical article | Zenn article | `zenn` |
|
|
66
|
+
| Technical article | Qiita article | `qiita` |
|
|
67
|
+
|
|
68
|
+
Reusable templates are included for README, design decisions, user manuals,
|
|
69
|
+
PR descriptions, requirements definitions, system designs, test plans,
|
|
70
|
+
operations runbooks, migration plans, security designs, technical proposals,
|
|
71
|
+
RFI, and RFP documents. Every supported doctype includes dedicated structure
|
|
72
|
+
guidance and a review checklist under
|
|
73
|
+
`skills/tech-writer/references/doctypes/`.
|
|
74
|
+
|
|
75
|
+
## What presentation-planner does
|
|
76
|
+
|
|
77
|
+
- Defines the audience, decision, call to action, and presentation constraints
|
|
78
|
+
- Produces a brief, audience-reasoning scenario, assertion-title slide outline,
|
|
79
|
+
YAML design specification, and deterministic handoff for the host's PPTX
|
|
80
|
+
creation skill
|
|
81
|
+
- Includes executive decision, technical briefing, and data report scenario
|
|
82
|
+
templates
|
|
83
|
+
- Includes executive proposal, technical briefing, and data report design
|
|
84
|
+
specifications
|
|
85
|
+
- Delegates `.pptx` generation, binary editing, rendering, and visual QA to
|
|
86
|
+
the dedicated PPTX skill instead of duplicating it
|
|
87
|
+
|
|
38
88
|
## Setup
|
|
39
89
|
|
|
40
90
|
### Prerequisites
|
|
@@ -45,43 +95,54 @@ Japanese prose with natural-japanese.
|
|
|
45
95
|
|
|
46
96
|
### Install from npm
|
|
47
97
|
|
|
48
|
-
Install the package, then copy
|
|
49
|
-
the included CLI:
|
|
98
|
+
Install the package, then copy all packaged skills into a skill directory
|
|
99
|
+
with the included CLI:
|
|
50
100
|
|
|
51
101
|
```bash
|
|
52
102
|
npm install --save-dev kotonoha
|
|
53
103
|
npx kotonoha install
|
|
54
104
|
```
|
|
55
105
|
|
|
56
|
-
The default
|
|
57
|
-
project. To install
|
|
58
|
-
directory:
|
|
106
|
+
The default destinations are `.github/skills/tech-writer` and
|
|
107
|
+
`.github/skills/presentation-planner` in the current project. To install
|
|
108
|
+
only one skill, or use another supported skill directory:
|
|
59
109
|
|
|
60
110
|
```bash
|
|
111
|
+
npx kotonoha install --skill presentation-planner
|
|
61
112
|
npx kotonoha install --target .claude/skills
|
|
62
113
|
npx kotonoha install --target ~/.copilot/skills
|
|
63
114
|
```
|
|
64
115
|
|
|
65
|
-
|
|
66
|
-
or back up the existing installation, then pass
|
|
67
|
-
intend to replace
|
|
116
|
+
An explicit `--skill <name>` install refuses to overwrite that existing
|
|
117
|
+
skill directory. Review or back up the existing installation, then pass
|
|
118
|
+
`--force` only when you intend to replace the selected skills:
|
|
68
119
|
|
|
69
120
|
```bash
|
|
70
121
|
npx kotonoha install --force
|
|
71
122
|
```
|
|
72
123
|
|
|
124
|
+
When installing all skills, existing skill directories are skipped and only
|
|
125
|
+
missing skills are added. This makes upgrading from a tech-writer-only
|
|
126
|
+
installation safe:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
npx kotonoha install
|
|
130
|
+
# Skipped tech-writer (...)
|
|
131
|
+
# Installed presentation-planner (...)
|
|
132
|
+
```
|
|
133
|
+
|
|
73
134
|
### Install from a source checkout
|
|
74
135
|
|
|
75
|
-
Inside this repository, the
|
|
76
|
-
|
|
77
|
-
Copilot CLI here.
|
|
136
|
+
Inside this repository, the skills are linked under `.github/skills/`, so no
|
|
137
|
+
extra setup is needed to use them with Copilot CLI here.
|
|
78
138
|
|
|
79
|
-
To use
|
|
80
|
-
that repository's `.github/skills/`, `.claude/skills/`, or your global
|
|
139
|
+
To use a skill from a source checkout in another project, copy its directory
|
|
140
|
+
into that repository's `.github/skills/`, `.claude/skills/`, or your global
|
|
81
141
|
`~/.copilot/skills/`.
|
|
82
142
|
|
|
83
143
|
```bash
|
|
84
144
|
cp -r skills/tech-writer /path/to/your-repo/.github/skills/tech-writer
|
|
145
|
+
cp -r skills/presentation-planner /path/to/your-repo/.github/skills/presentation-planner
|
|
85
146
|
```
|
|
86
147
|
|
|
87
148
|
## Ask Copilot for the document you need
|
|
@@ -91,6 +152,10 @@ invoked automatically.
|
|
|
91
152
|
|
|
92
153
|
- "Write a README", "Review this design doc", "Write the PR description",
|
|
93
154
|
"Make this how-to guide clearer"
|
|
155
|
+
- "要件定義書を作って", "承認済み要件からシステム設計書を書いて",
|
|
156
|
+
"移行計画とRunbookを作って"
|
|
157
|
+
- "Create a PPTX from this proposal", "Plan an executive presentation",
|
|
158
|
+
"Design a technical briefing deck"
|
|
94
159
|
|
|
95
160
|
To run a quick structure-only diagnostic:
|
|
96
161
|
|
|
@@ -107,10 +172,16 @@ works too (standard library only).
|
|
|
107
172
|
skills/tech-writer/ # the skill itself
|
|
108
173
|
SKILL.md # skill definition
|
|
109
174
|
references/ # structure constitution + doctype rules/checklists
|
|
110
|
-
references/doctypes/ # README, design
|
|
175
|
+
references/doctypes/ # README, requirements/design/test/operations/migration/security, API docs, PR/issue, release notes, proposals, RFI/RFP, Qiita/Zenn
|
|
111
176
|
scripts/lint.py # structural lint script
|
|
112
|
-
assets/templates/ #
|
|
177
|
+
assets/templates/ # doctype skeletons including requirements, design, test, operations, migration, security, and procurement
|
|
178
|
+
skills/presentation-planner/ # storyline, design-spec, and PPTX handoff skill
|
|
179
|
+
SKILL.md
|
|
180
|
+
references/ # boundary, scenario/design guidance, customization, handoff contract
|
|
181
|
+
assets/scenario-templates/ # executive, technical, and data-report narrative scenarios
|
|
182
|
+
assets/design-templates/ # executive, technical, and data-report YAML designs
|
|
113
183
|
.github/skills/tech-writer # symlink to skills/tech-writer (where Copilot CLI reads it)
|
|
184
|
+
.github/skills/presentation-planner
|
|
114
185
|
```
|
|
115
186
|
|
|
116
187
|
## Known limitations
|
|
@@ -121,6 +192,10 @@ skills/tech-writer/ # the skill itself
|
|
|
121
192
|
- The doctypes are written mainly with Japanese technical-writing
|
|
122
193
|
conventions in mind; most of the guidance (especially the commit-message
|
|
123
194
|
imperative-mood rule) applies directly to English documents as well.
|
|
195
|
+
- `presentation-planner` does not create or validate `.pptx` binaries by
|
|
196
|
+
itself; a dedicated PPTX skill is required for generation and visual QA.
|
|
197
|
+
- Design customization is documented in
|
|
198
|
+
`skills/presentation-planner/references/customizing-design-templates.md`.
|
|
124
199
|
|
|
125
200
|
## Acknowledgment
|
|
126
201
|
|
package/bin/kotonoha.js
CHANGED
|
@@ -7,11 +7,12 @@ const packageJson = require("../package.json");
|
|
|
7
7
|
|
|
8
8
|
function printUsage() {
|
|
9
9
|
console.log(`Usage:
|
|
10
|
-
kotonoha install [--target <directory>] [--force]
|
|
10
|
+
kotonoha install [--target <directory>] [--skill <name|all>] [--force]
|
|
11
11
|
|
|
12
12
|
Options:
|
|
13
13
|
--target <directory> Skill directory root (default: .github/skills)
|
|
14
|
-
--
|
|
14
|
+
--skill <name|all> Skill to install (default: all)
|
|
15
|
+
--force Replace existing selected skill installations
|
|
15
16
|
--help Show this help
|
|
16
17
|
--version Show the installed kotonoha version`);
|
|
17
18
|
}
|
|
@@ -23,6 +24,7 @@ function fail(message) {
|
|
|
23
24
|
|
|
24
25
|
function parseInstallOptions(args) {
|
|
25
26
|
let target = ".github/skills";
|
|
27
|
+
let skill = "all";
|
|
26
28
|
let force = false;
|
|
27
29
|
|
|
28
30
|
for (let index = 0; index < args.length; index += 1) {
|
|
@@ -43,6 +45,25 @@ function parseInstallOptions(args) {
|
|
|
43
45
|
continue;
|
|
44
46
|
}
|
|
45
47
|
|
|
48
|
+
if (argument === "--skill") {
|
|
49
|
+
const value = args[index + 1];
|
|
50
|
+
if (!value || value.startsWith("--")) {
|
|
51
|
+
throw new Error("--skill requires a skill name or all");
|
|
52
|
+
}
|
|
53
|
+
skill = value;
|
|
54
|
+
index += 1;
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (argument.startsWith("--skill=")) {
|
|
59
|
+
const value = argument.slice("--skill=".length);
|
|
60
|
+
if (!value) {
|
|
61
|
+
throw new Error("--skill requires a skill name or all");
|
|
62
|
+
}
|
|
63
|
+
skill = value;
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
|
|
46
67
|
if (argument.startsWith("--target=")) {
|
|
47
68
|
const value = argument.slice("--target=".length);
|
|
48
69
|
if (!value) {
|
|
@@ -55,7 +76,7 @@ function parseInstallOptions(args) {
|
|
|
55
76
|
throw new Error(`unknown option: ${argument}`);
|
|
56
77
|
}
|
|
57
78
|
|
|
58
|
-
return { target, force };
|
|
79
|
+
return { target, skill, force };
|
|
59
80
|
}
|
|
60
81
|
|
|
61
82
|
function install(args) {
|
|
@@ -67,28 +88,75 @@ function install(args) {
|
|
|
67
88
|
return;
|
|
68
89
|
}
|
|
69
90
|
|
|
70
|
-
const
|
|
91
|
+
const skillsRoot = path.resolve(__dirname, "..", "skills");
|
|
71
92
|
const targetRoot = path.resolve(process.cwd(), options.target);
|
|
72
|
-
const destination = path.join(targetRoot, "tech-writer");
|
|
73
93
|
|
|
74
|
-
if (!fs.existsSync(
|
|
75
|
-
fail(`packaged
|
|
94
|
+
if (!fs.existsSync(skillsRoot)) {
|
|
95
|
+
fail(`packaged skills not found at ${skillsRoot}`);
|
|
76
96
|
return;
|
|
77
97
|
}
|
|
78
98
|
|
|
79
|
-
|
|
80
|
-
|
|
99
|
+
const availableSkills = fs
|
|
100
|
+
.readdirSync(skillsRoot, { withFileTypes: true })
|
|
101
|
+
.filter(
|
|
102
|
+
(entry) =>
|
|
103
|
+
entry.isDirectory() &&
|
|
104
|
+
fs.existsSync(path.join(skillsRoot, entry.name, "SKILL.md")),
|
|
105
|
+
)
|
|
106
|
+
.map((entry) => entry.name)
|
|
107
|
+
.sort();
|
|
108
|
+
const selectedSkills =
|
|
109
|
+
options.skill === "all" ? availableSkills : [options.skill];
|
|
110
|
+
const installAll = options.skill === "all";
|
|
111
|
+
|
|
112
|
+
for (const skill of selectedSkills) {
|
|
113
|
+
if (!availableSkills.includes(skill)) {
|
|
81
114
|
fail(
|
|
82
|
-
|
|
115
|
+
`unknown skill: ${skill}; available skills: ${availableSkills.join(", ")}`,
|
|
83
116
|
);
|
|
84
117
|
return;
|
|
85
118
|
}
|
|
86
|
-
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
const existingDestinations = selectedSkills
|
|
122
|
+
.map((skill) => path.join(targetRoot, skill))
|
|
123
|
+
.filter((destination) => fs.existsSync(destination));
|
|
124
|
+
|
|
125
|
+
if (existingDestinations.length > 0 && !options.force && !installAll) {
|
|
126
|
+
fail(
|
|
127
|
+
`${existingDestinations.join(", ")} already exists; rerun with --force to replace selected skills`,
|
|
128
|
+
);
|
|
129
|
+
return;
|
|
87
130
|
}
|
|
88
131
|
|
|
89
132
|
fs.mkdirSync(targetRoot, { recursive: true });
|
|
90
|
-
|
|
91
|
-
|
|
133
|
+
for (const skill of selectedSkills) {
|
|
134
|
+
const source = path.join(skillsRoot, skill);
|
|
135
|
+
const destination = path.join(targetRoot, skill);
|
|
136
|
+
if (fs.existsSync(destination) && !options.force) {
|
|
137
|
+
console.log(
|
|
138
|
+
`Skipped ${skill} (${destination} already exists; use --force to replace)`,
|
|
139
|
+
);
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
const temporaryDestination = path.join(
|
|
144
|
+
targetRoot,
|
|
145
|
+
`.kotonoha-${skill}-${process.pid}-${Date.now()}`,
|
|
146
|
+
);
|
|
147
|
+
try {
|
|
148
|
+
fs.cpSync(source, temporaryDestination, { recursive: true });
|
|
149
|
+
if (options.force) {
|
|
150
|
+
fs.rmSync(destination, { recursive: true, force: true });
|
|
151
|
+
}
|
|
152
|
+
fs.renameSync(temporaryDestination, destination);
|
|
153
|
+
} catch (error) {
|
|
154
|
+
fs.rmSync(temporaryDestination, { recursive: true, force: true });
|
|
155
|
+
fail(`failed to install ${skill}: ${error.message}`);
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
console.log(`Installed ${skill} to ${destination}`);
|
|
159
|
+
}
|
|
92
160
|
}
|
|
93
161
|
|
|
94
162
|
const [command, ...args] = process.argv.slice(2);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kotonoha",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.1.4",
|
|
4
|
+
"description": "GitHub Copilot CLI skills for technical writing and PPTX presentation planning.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "nahisaho",
|
|
7
7
|
"repository": {
|
|
@@ -27,7 +27,11 @@
|
|
|
27
27
|
"skill",
|
|
28
28
|
"technical-writing",
|
|
29
29
|
"documentation",
|
|
30
|
-
"markdown"
|
|
30
|
+
"markdown",
|
|
31
|
+
"presentation",
|
|
32
|
+
"pptx",
|
|
33
|
+
"powerpoint",
|
|
34
|
+
"slides"
|
|
31
35
|
],
|
|
32
36
|
"files": [
|
|
33
37
|
"CHANGELOG.md",
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: presentation-planner
|
|
3
|
+
description: >-
|
|
4
|
+
Plans the content structure and visual design handoff for PowerPoint/PPTX
|
|
5
|
+
presentations without generating or editing the .pptx file itself. Use for
|
|
6
|
+
requests like "create a PowerPoint", "make a PPTX", "design a slide deck",
|
|
7
|
+
"turn this proposal into slides", 「PowerPointを作って」「PPTXを作成して」
|
|
8
|
+
「提案書をスライドにして」「プレゼン資料の構成を作って」
|
|
9
|
+
「プレゼンシナリオを作って」. Produces a presentation brief, reusable
|
|
10
|
+
scenario-based narrative, slide-by-slide outline, design specification,
|
|
11
|
+
and handoff instructions for the host's dedicated PPTX creation skill. Does
|
|
12
|
+
NOT implement PPTX generation, python-pptx/PptxGenJS code, binary editing,
|
|
13
|
+
rendering, thumbnail creation, or visual-overlap inspection; those remain
|
|
14
|
+
the responsibility of the dedicated PPTX skill. Does NOT handle simple
|
|
15
|
+
edits to an existing deck, single-slide changes, or direct generation when
|
|
16
|
+
the storyline and design are already settled; use the dedicated PPTX skill
|
|
17
|
+
directly for those requests.
|
|
18
|
+
license: MIT
|
|
19
|
+
argument-hint: "[plan|review] <presentation request or source files>"
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# presentation-planner
|
|
23
|
+
|
|
24
|
+
Plans what a presentation must communicate, how the story progresses, and
|
|
25
|
+
which visual system the PPTX renderer must apply. The output is a complete
|
|
26
|
+
handoff package for a dedicated PPTX creation skill, not a `.pptx` file.
|
|
27
|
+
|
|
28
|
+
## Responsibility boundary
|
|
29
|
+
|
|
30
|
+
Read `references/responsibility-boundary.md` before acting. This skill owns:
|
|
31
|
+
|
|
32
|
+
- Audience, objective, decision, and call-to-action definition
|
|
33
|
+
- Scenario selection, audience reasoning journey, and slide ordering
|
|
34
|
+
- One-message-per-slide content architecture
|
|
35
|
+
- Evidence and source mapping
|
|
36
|
+
- Selection and adaptation of a packaged design specification
|
|
37
|
+
- A deterministic handoff contract for the host's PPTX skill
|
|
38
|
+
|
|
39
|
+
This skill must not:
|
|
40
|
+
|
|
41
|
+
- Create, edit, unzip, or inspect `.pptx` binaries
|
|
42
|
+
- Write PowerPoint generation code using python-pptx, PptxGenJS, COM, or
|
|
43
|
+
similar libraries
|
|
44
|
+
- Render slides, create thumbnails, or detect visual overlap
|
|
45
|
+
- Reimplement layout or visual QA tooling supplied by the host's PPTX skill
|
|
46
|
+
|
|
47
|
+
When the host provides a registered `pptx` or PowerPoint creation skill,
|
|
48
|
+
delegate binary generation and visual QA to it. If no such skill is
|
|
49
|
+
available, still produce the five planning artifacts and report
|
|
50
|
+
`PPTX generation not performed`; do not silently implement a renderer.
|
|
51
|
+
|
|
52
|
+
## Execution modes
|
|
53
|
+
|
|
54
|
+
- `plan` (default): gather context, produce the five handoff artifacts, and
|
|
55
|
+
delegate generation when a PPTX skill is available.
|
|
56
|
+
- `review`: review existing brief, scenario, outline, and design spec for
|
|
57
|
+
audience fit, storyline gaps, evidence gaps, and handoff ambiguity. Do not
|
|
58
|
+
inspect the binary presentation.
|
|
59
|
+
|
|
60
|
+
## 0. Route direct PPTX operations away
|
|
61
|
+
|
|
62
|
+
Before intake, skip this skill and use the dedicated PPTX skill directly
|
|
63
|
+
when any of the following is true:
|
|
64
|
+
|
|
65
|
+
- The request is a mechanical edit to an existing deck
|
|
66
|
+
- Only one slide, title, image, note, or formatting property must change
|
|
67
|
+
- The user supplied a final scenario, slide outline, and design with no
|
|
68
|
+
request to restructure them
|
|
69
|
+
- The task is only binary generation, rendering, conversion, or visual QA
|
|
70
|
+
|
|
71
|
+
Use `presentation-planner` when the audience, storyline, evidence,
|
|
72
|
+
slide sequence, or visual system still needs design.
|
|
73
|
+
|
|
74
|
+
## 1. Gather context one question at a time
|
|
75
|
+
|
|
76
|
+
Ask only the single most informative missing question, then wait. Stop once
|
|
77
|
+
the following are known:
|
|
78
|
+
|
|
79
|
+
1. Target audience and what they already know
|
|
80
|
+
2. The decision, action, or understanding the presentation must produce
|
|
81
|
+
3. Presentation setting: meeting type, speaking time, and target slide count
|
|
82
|
+
4. Source material and evidence that may be cited
|
|
83
|
+
5. Required language, aspect ratio, brand rules, and accessibility needs
|
|
84
|
+
6. Whether an existing `.pptx` or brand template must be reused
|
|
85
|
+
|
|
86
|
+
If an existing `.pptx` must be reused, ask the host's PPTX skill to inspect
|
|
87
|
+
its theme and layouts. Consume the returned design summary; do not inspect
|
|
88
|
+
the binary in this skill.
|
|
89
|
+
|
|
90
|
+
## 2. Choose a packaged design specification
|
|
91
|
+
|
|
92
|
+
Choose the closest design under `assets/design-templates/`:
|
|
93
|
+
|
|
94
|
+
| Design | Use when | Avoid when |
|
|
95
|
+
|---|---|---|
|
|
96
|
+
| `executive-proposal.yaml` | Approval, investment, roadmap, or executive decision | Dense technical training |
|
|
97
|
+
| `technical-briefing.yaml` | Architecture, engineering explanation, technical proposal | Primarily financial reporting |
|
|
98
|
+
| `data-report.yaml` | KPI review, research findings, operational or analytical reporting | Slides without credible data |
|
|
99
|
+
|
|
100
|
+
Read `references/design-spec-schema.md` and adapt the selected design into
|
|
101
|
+
the presentation's `design-spec.yaml`. Preserve the schema keys so the PPTX
|
|
102
|
+
skill can consume it predictably.
|
|
103
|
+
|
|
104
|
+
For project-specific changes or new reusable templates, follow
|
|
105
|
+
`references/customizing-design-templates.md`.
|
|
106
|
+
|
|
107
|
+
## 3. Build the storyline before slide content
|
|
108
|
+
|
|
109
|
+
Read `references/scenario-templates.md`, then choose the closest scenario
|
|
110
|
+
under `assets/scenario-templates/`:
|
|
111
|
+
|
|
112
|
+
| Scenario | Use when |
|
|
113
|
+
|---|---|
|
|
114
|
+
| `executive-decision.md` | Approval, investment, roadmap, policy, or option selection |
|
|
115
|
+
| `technical-briefing.md` | Architecture, engineering behavior, or technical review |
|
|
116
|
+
| `data-report.md` | KPI, research, experiment, survey, or operational analysis |
|
|
117
|
+
|
|
118
|
+
Copy and adapt it into `presentation-scenario.md`. Use the shortest storyline
|
|
119
|
+
that gets the audience to the intended outcome. The selected template's
|
|
120
|
+
scenario arc is authoritative; keep its stage names unless the adaptation
|
|
121
|
+
records why a stage is removed, merged, or renamed.
|
|
122
|
+
|
|
123
|
+
When none of the packaged templates fits, use this generic fallback:
|
|
124
|
+
|
|
125
|
+
1. **Context**: why the audience should care now
|
|
126
|
+
2. **Tension**: the problem, gap, risk, or opportunity
|
|
127
|
+
3. **Evidence**: facts that establish scale and credibility
|
|
128
|
+
4. **Resolution**: the proposed answer or interpretation
|
|
129
|
+
5. **Plan**: actions, owners, cost, timing, and controls
|
|
130
|
+
6. **Decision**: the exact approval, action, or next step
|
|
131
|
+
|
|
132
|
+
Remove a stage when it adds no decision value. Do not add agenda, section
|
|
133
|
+
divider, or summary slides merely to increase slide count.
|
|
134
|
+
|
|
135
|
+
## 4. Produce the five handoff artifacts
|
|
136
|
+
|
|
137
|
+
Write the artifacts under `.presentation/<deck-slug>/` unless the user
|
|
138
|
+
specifies another directory. Derive a stable, filesystem-safe slug from the
|
|
139
|
+
presentation title so multiple decks do not overwrite each other.
|
|
140
|
+
|
|
141
|
+
### `presentation-brief.md`
|
|
142
|
+
|
|
143
|
+
Include:
|
|
144
|
+
|
|
145
|
+
- Working title and one-sentence purpose
|
|
146
|
+
- Audience and prior-knowledge floor
|
|
147
|
+
- Decision or call to action
|
|
148
|
+
- Setting, duration, slide count, language, and aspect ratio
|
|
149
|
+
- Source files and citation expectations
|
|
150
|
+
- Constraints, non-goals, and known unknowns
|
|
151
|
+
- Selected design template and reason
|
|
152
|
+
|
|
153
|
+
### `presentation-scenario.md`
|
|
154
|
+
|
|
155
|
+
Copy and adapt one packaged scenario template. If no packaged template fits,
|
|
156
|
+
write the generic fallback arc from §3 into this file using the same fields:
|
|
157
|
+
stage, audience question, assertion, required evidence, transition, and
|
|
158
|
+
suggested slide range. Include:
|
|
159
|
+
|
|
160
|
+
- Current and intended audience position
|
|
161
|
+
- One assertion and audience question per scenario stage
|
|
162
|
+
- Required evidence, source status, and assumptions
|
|
163
|
+
- The transition that makes the next stage relevant
|
|
164
|
+
- Likely objections, uncertainty, and trade-offs
|
|
165
|
+
- The exact final decision, action, or understanding
|
|
166
|
+
|
|
167
|
+
The scenario defines the reasoning journey, not individual slide content.
|
|
168
|
+
|
|
169
|
+
### `slide-outline.md`
|
|
170
|
+
|
|
171
|
+
Use one row per slide:
|
|
172
|
+
|
|
173
|
+
| # | Scenario stage(s) | Assertion title | Audience takeaway | Evidence/source | Visual form | Speaker note purpose |
|
|
174
|
+
|---:|---|---|---|---|---|---|
|
|
175
|
+
|
|
176
|
+
Rules:
|
|
177
|
+
|
|
178
|
+
- Titles state the slide's conclusion, not its topic
|
|
179
|
+
- Each slide has one primary message
|
|
180
|
+
- Every slide maps to at least one scenario stage; separate multiple stage
|
|
181
|
+
names with ` / `
|
|
182
|
+
- Evidence is traceable to a source or marked as an assumption
|
|
183
|
+
- Visual form is specific: comparison table, timeline, architecture diagram,
|
|
184
|
+
annotated chart, process, quote, or full-bleed image
|
|
185
|
+
- A slide must earn its place by advancing the decision or outcome
|
|
186
|
+
|
|
187
|
+
### `design-spec.yaml`
|
|
188
|
+
|
|
189
|
+
Copy and adapt one packaged design specification. Set `base_template` to the
|
|
190
|
+
packaged template ID and change `id` to a unique value such as
|
|
191
|
+
`<deck-slug>:<base-template>`. Resolve its placeholders, then record any
|
|
192
|
+
deliberate deviation in a `deviations` list.
|
|
193
|
+
|
|
194
|
+
### `pptx-handoff.md`
|
|
195
|
+
|
|
196
|
+
Follow `references/handoff-contract.md`. It must tell the PPTX skill:
|
|
197
|
+
|
|
198
|
+
- Exact input artifact paths
|
|
199
|
+
- Exact output `.pptx` path
|
|
200
|
+
- Required design template and deviations
|
|
201
|
+
- Slide count and aspect ratio
|
|
202
|
+
- Source and citation rules
|
|
203
|
+
- Required speaker notes and accessibility behavior
|
|
204
|
+
- Binary-generation and visual-QA acceptance checks
|
|
205
|
+
|
|
206
|
+
## 5. Validate the planning package
|
|
207
|
+
|
|
208
|
+
Before handoff, verify:
|
|
209
|
+
|
|
210
|
+
- Reading only assertion titles reproduces the full argument
|
|
211
|
+
- Reading only scenario-stage assertions reproduces the audience journey
|
|
212
|
+
- Every slide maps to at least one stage without introducing an unsupported
|
|
213
|
+
conclusion
|
|
214
|
+
- The final slide asks for the exact intended decision or action
|
|
215
|
+
- Every factual or quantitative claim has a source or assumption marker
|
|
216
|
+
- No slide has more than one primary message
|
|
217
|
+
- Visual forms vary with the information instead of repeating one layout
|
|
218
|
+
- The design spec contains all required schema keys
|
|
219
|
+
- The handoff assigns all binary and visual checks to the PPTX skill
|
|
220
|
+
|
|
221
|
+
Use an independent `rubber-duck` reviewer when available. Fix actionable
|
|
222
|
+
findings and repeat for at most five rounds. A round is clean when no
|
|
223
|
+
unaddressed correctness, storyline, evidence, design, or handoff findings
|
|
224
|
+
remain. If the reviewer is unavailable, report `review not performed`. If
|
|
225
|
+
five rounds end with actionable findings, report `review did not converge`
|
|
226
|
+
with the unresolved findings and attempted fixes.
|
|
227
|
+
|
|
228
|
+
## 6. Delegate PPTX creation
|
|
229
|
+
|
|
230
|
+
Pass the five artifact paths to the host's dedicated PPTX skill. The PPTX
|
|
231
|
+
skill may choose its own implementation library, but it must preserve the
|
|
232
|
+
approved storyline and design tokens unless it reports a concrete rendering
|
|
233
|
+
constraint.
|
|
234
|
+
|
|
235
|
+
After generation, require the PPTX skill to report:
|
|
236
|
+
|
|
237
|
+
- Output file path and slide count
|
|
238
|
+
- Render/thumbnail review result
|
|
239
|
+
- Overlap, clipping, contrast, and font-substitution checks
|
|
240
|
+
- Missing assets or unsupported design instructions
|
|
241
|
+
- Any deviation from `slide-outline.md` or `design-spec.yaml`
|
|
242
|
+
|
|
243
|
+
Do not claim a presentation is complete from this planning skill alone.
|