slidict 0.6.2 → 0.7.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.
- checksums.yaml +4 -4
- data/.github/pull_request_template.md +22 -0
- data/.github/workflows/version-check.yml +70 -0
- data/CHANGELOG.md +3 -0
- data/README.md +3 -1
- data/data/slidict/methods/aidma.yml +35 -0
- data/data/slidict/methods/desc.yml +32 -0
- data/data/slidict/methods/fabe.yml +32 -0
- data/data/slidict/methods/sds.yml +28 -0
- data/data/slidict/methods/taps.yml +32 -0
- data/docs/presentation-methods.md +8 -1
- data/lib/slidict/version.rb +1 -1
- metadata +8 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ab47129a915cbf21d2a573c0f1d3f9f9b654eb86a6a4226261a94fc44a60ba16
|
|
4
|
+
data.tar.gz: f0ab819d3077c1bfa36f268dc06939c7f02bd483649be86d360d5558a2dded34
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 173dc71c06cf303b382fe7527ec27c8ddb61a9c3ced94563914fe2b56121af308b8d3f6290597800c32086d6ba6b51e8dc91dc1128a6776abf8358e0e1a113dc
|
|
7
|
+
data.tar.gz: e76f87bdd14452ce271dfa20cf5f8af65c5f82a3b687b53958d8e8a2cf45f022b79ba0ee2dd2dc753a02b1dcb44c4032bee8bfcebb2adbaf7512e77dcba7d68a
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
## Summary
|
|
2
|
+
|
|
3
|
+
<!-- What does this PR change, and why? -->
|
|
4
|
+
|
|
5
|
+
## Version bump
|
|
6
|
+
|
|
7
|
+
This repository follows [Semantic Versioning](https://semver.org/) (see `AGENTS.md`).
|
|
8
|
+
Every PR is expected to update `lib/slidict/version.rb`, and CI fails when it does not.
|
|
9
|
+
|
|
10
|
+
- [ ] <!-- skip-version-check --> This PR does not require a version bump
|
|
11
|
+
|
|
12
|
+
<!--
|
|
13
|
+
Leave the box above unchecked and bump `lib/slidict/version.rb` in this PR.
|
|
14
|
+
Check it only when no release is needed (docs-only, CI-only, test-only changes, etc.).
|
|
15
|
+
Keep the `skip-version-check` comment intact — the CI check looks for it.
|
|
16
|
+
-->
|
|
17
|
+
|
|
18
|
+
## Checklist
|
|
19
|
+
|
|
20
|
+
- [ ] `bundle exec rspec` passes
|
|
21
|
+
- [ ] `bundle exec rubocop` passes
|
|
22
|
+
- [ ] `README.md` updated if user-facing behavior changed
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
name: Version Check
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
types:
|
|
6
|
+
- opened
|
|
7
|
+
- reopened
|
|
8
|
+
- synchronize
|
|
9
|
+
- edited
|
|
10
|
+
- ready_for_review
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
contents: read
|
|
14
|
+
pull-requests: read
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
version-file:
|
|
18
|
+
name: Require version.rb update
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
- name: Require version.rb update or an explicit skip
|
|
23
|
+
env:
|
|
24
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
25
|
+
REPO: ${{ github.repository }}
|
|
26
|
+
PR_NUMBER: ${{ github.event.pull_request.number }}
|
|
27
|
+
PR_BODY: ${{ github.event.pull_request.body }}
|
|
28
|
+
PR_ACTOR: ${{ github.event.pull_request.user.login }}
|
|
29
|
+
VERSION_FILE: lib/slidict/version.rb
|
|
30
|
+
run: |
|
|
31
|
+
set -euo pipefail
|
|
32
|
+
|
|
33
|
+
# Dependency update PRs are opened by bots that cannot fill in the
|
|
34
|
+
# pull request template, so they are exempt from this check.
|
|
35
|
+
case "$PR_ACTOR" in
|
|
36
|
+
'dependabot[bot]' | 'github-actions[bot]')
|
|
37
|
+
echo "::notice::Skipping version check for bot author '${PR_ACTOR}'."
|
|
38
|
+
exit 0
|
|
39
|
+
;;
|
|
40
|
+
esac
|
|
41
|
+
|
|
42
|
+
# The pull request template ships a checkbox carrying the
|
|
43
|
+
# `skip-version-check` marker, unchecked by default.
|
|
44
|
+
if printf '%s\n' "${PR_BODY:-}" |
|
|
45
|
+
grep -qiE '^[[:space:]]*[-*+][[:space:]]+\[[[:space:]]*x[[:space:]]*\].*skip-version-check'; then
|
|
46
|
+
echo "::notice::'${VERSION_FILE}' is not required: the skip-version-check box is checked."
|
|
47
|
+
exit 0
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
changed_files="$(gh api --paginate "repos/${REPO}/pulls/${PR_NUMBER}/files" --jq '.[].filename')"
|
|
51
|
+
|
|
52
|
+
if printf '%s\n' "$changed_files" | grep -qxF "$VERSION_FILE"; then
|
|
53
|
+
echo "::notice::'${VERSION_FILE}' is updated in this pull request."
|
|
54
|
+
exit 0
|
|
55
|
+
fi
|
|
56
|
+
|
|
57
|
+
echo "::error::'${VERSION_FILE}' is not updated in this pull request."
|
|
58
|
+
{
|
|
59
|
+
echo "### Version check failed"
|
|
60
|
+
echo
|
|
61
|
+
echo "This pull request does not update \`${VERSION_FILE}\`."
|
|
62
|
+
echo
|
|
63
|
+
echo "Do one of the following:"
|
|
64
|
+
echo
|
|
65
|
+
echo "- Bump \`VERSION\` in \`${VERSION_FILE}\` following [SemVer](https://semver.org/) (see \`AGENTS.md\`), or"
|
|
66
|
+
echo "- Check the \"This PR does not require a version bump\" box in the pull request description."
|
|
67
|
+
echo
|
|
68
|
+
echo "Editing the description re-runs this check automatically."
|
|
69
|
+
} >> "$GITHUB_STEP_SUMMARY"
|
|
70
|
+
exit 1
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
2
|
|
|
3
|
+
## [0.7.0] - 2026-07-30
|
|
4
|
+
|
|
5
|
+
- Add built-in SDS, DESC, AIDMA, TAPS, and FABE presentation methods.
|
|
3
6
|
- Add source-text slide generation through `--text`, `--text-file`, and the reusable
|
|
4
7
|
`Slidict::Generator` integration API.
|
|
5
8
|
- Add `slidict init` to create a `.env` file (for `SLIDICT_LLM_*`, `SLIDICT_FRAMEWORK`,
|
data/README.md
CHANGED
|
@@ -299,10 +299,12 @@ We optimize for communication, not decoration.
|
|
|
299
299
|
|
|
300
300
|
## Presentation methods
|
|
301
301
|
|
|
302
|
-
Use `--method` to generate slides with a specific narrative structure
|
|
302
|
+
Use `--method` to generate slides with a specific narrative structure. Built-in methods include SDS, PREP, DESC,
|
|
303
|
+
AIDMA, TAPS, FABE, SCQA, and Pyramid Principle.
|
|
303
304
|
|
|
304
305
|
```bash
|
|
305
306
|
bin/slidict --method scqa --topic "Database migration plan"
|
|
307
|
+
bin/slidict --method aidma --topic "Product launch"
|
|
306
308
|
bin/slidict list-methods
|
|
307
309
|
bin/slidict show-method scqa
|
|
308
310
|
```
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
id: aidma
|
|
2
|
+
name: AIDMA
|
|
3
|
+
category: marketing
|
|
4
|
+
description: Attention, Interest, Desire, Memory, Action structure for guiding an audience from awareness to action.
|
|
5
|
+
locale: en
|
|
6
|
+
suitable_for:
|
|
7
|
+
- Marketing presentations
|
|
8
|
+
- Product and service pitches
|
|
9
|
+
- Campaign or launch proposals
|
|
10
|
+
slides:
|
|
11
|
+
- title: Attention
|
|
12
|
+
role: Capture attention with an audience-relevant hook.
|
|
13
|
+
instructions: Open with a striking fact, question, or situation connected to the audience's needs.
|
|
14
|
+
- title: Interest
|
|
15
|
+
role: Build interest by showing why the subject is relevant.
|
|
16
|
+
instructions: Connect the offer or idea to a recognizable problem, opportunity, or aspiration.
|
|
17
|
+
- title: Desire
|
|
18
|
+
role: Turn interest into a preference for the proposed solution.
|
|
19
|
+
instructions: Show concrete benefits and help the audience imagine the improved outcome.
|
|
20
|
+
- title: Memory
|
|
21
|
+
role: Make the key message easy to recall.
|
|
22
|
+
instructions: Reinforce one distinctive promise with memorable evidence, phrasing, or imagery.
|
|
23
|
+
- title: Action
|
|
24
|
+
role: Prompt the audience to take a clear next step.
|
|
25
|
+
instructions: State one specific action, remove ambiguity, and explain what happens next.
|
|
26
|
+
ai_instructions:
|
|
27
|
+
- Move through the AIDMA stages in order without asking for action too early.
|
|
28
|
+
- Frame benefits from the audience's point of view.
|
|
29
|
+
- Keep the memorable promise consistent with the evidence and call to action.
|
|
30
|
+
review_checklist:
|
|
31
|
+
- Does the opening earn the target audience's attention?
|
|
32
|
+
- Does interest develop into a concrete desire?
|
|
33
|
+
- Is the central promise distinctive and memorable?
|
|
34
|
+
- Is the requested action specific and easy to understand?
|
|
35
|
+
references: []
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
id: desc
|
|
2
|
+
name: DESC
|
|
3
|
+
category: assertive-communication
|
|
4
|
+
description: Describe, Express, Specify, Consequences structure for proposing a constructive change or resolving conflict.
|
|
5
|
+
locale: en
|
|
6
|
+
suitable_for:
|
|
7
|
+
- Feedback and difficult conversations
|
|
8
|
+
- Conflict resolution
|
|
9
|
+
- Requests for behavioral or process change
|
|
10
|
+
slides:
|
|
11
|
+
- title: Describe
|
|
12
|
+
role: Describe the situation or behavior objectively.
|
|
13
|
+
instructions: State observable facts without blame, assumptions, or judgment.
|
|
14
|
+
- title: Express
|
|
15
|
+
role: Explain the impact and the speaker's perspective or feelings.
|
|
16
|
+
instructions: Use specific first-person language to show why the situation matters.
|
|
17
|
+
- title: Specify
|
|
18
|
+
role: Request a concrete and achievable change.
|
|
19
|
+
instructions: Define the desired behavior, owner, and timing so the request is actionable.
|
|
20
|
+
- title: Consequences
|
|
21
|
+
role: Clarify the positive outcomes of the change and the implications of inaction.
|
|
22
|
+
instructions: Emphasize realistic benefits and consequences rather than threats.
|
|
23
|
+
ai_instructions:
|
|
24
|
+
- Separate observable facts from interpretations and emotions.
|
|
25
|
+
- Keep the tone respectful, direct, and solution-oriented.
|
|
26
|
+
- Make the requested change specific enough to act on.
|
|
27
|
+
review_checklist:
|
|
28
|
+
- Is the description factual and nonjudgmental?
|
|
29
|
+
- Is the impact expressed clearly from the speaker's perspective?
|
|
30
|
+
- Is the requested change concrete and achievable?
|
|
31
|
+
- Are the consequences realistic and constructive?
|
|
32
|
+
references: []
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
id: fabe
|
|
2
|
+
name: FABE
|
|
3
|
+
category: sales
|
|
4
|
+
description: Features, Advantages, Benefits, Evidence structure for connecting an offering's capabilities to credible customer value.
|
|
5
|
+
locale: en
|
|
6
|
+
suitable_for:
|
|
7
|
+
- Sales presentations
|
|
8
|
+
- Product demonstrations
|
|
9
|
+
- Solution comparisons
|
|
10
|
+
slides:
|
|
11
|
+
- title: Features
|
|
12
|
+
role: Introduce the relevant capabilities or attributes of the offering.
|
|
13
|
+
instructions: Select only features connected to the audience's needs and describe them precisely.
|
|
14
|
+
- title: Advantages
|
|
15
|
+
role: Explain how those features perform better or differently.
|
|
16
|
+
instructions: Compare the capabilities with the current approach or alternatives without unsupported claims.
|
|
17
|
+
- title: Benefits
|
|
18
|
+
role: Translate the advantages into outcomes the audience values.
|
|
19
|
+
instructions: State tangible functional or emotional value in the audience's terms.
|
|
20
|
+
- title: Evidence
|
|
21
|
+
role: Prove the promised benefits with credible support.
|
|
22
|
+
instructions: Use relevant data, demonstrations, testimonials, or case results and identify their context.
|
|
23
|
+
ai_instructions:
|
|
24
|
+
- Maintain a clear chain from each feature to its advantage, benefit, and evidence.
|
|
25
|
+
- Prioritize audience value over a long inventory of specifications.
|
|
26
|
+
- Avoid claims that the evidence does not substantiate.
|
|
27
|
+
review_checklist:
|
|
28
|
+
- Are the selected features relevant to the audience's needs?
|
|
29
|
+
- Are advantages differentiated clearly and fairly?
|
|
30
|
+
- Are benefits expressed as audience outcomes?
|
|
31
|
+
- Is every important claim supported by credible evidence?
|
|
32
|
+
references: []
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
id: sds
|
|
2
|
+
name: SDS
|
|
3
|
+
category: concise-communication
|
|
4
|
+
description: Summary, Details, Summary structure for communicating a message clearly and memorably.
|
|
5
|
+
locale: en
|
|
6
|
+
suitable_for:
|
|
7
|
+
- Short presentations and status updates
|
|
8
|
+
- Explanations that need a clear takeaway
|
|
9
|
+
- Messages for time-constrained audiences
|
|
10
|
+
slides:
|
|
11
|
+
- title: Summary
|
|
12
|
+
role: State the central message or conclusion at the outset.
|
|
13
|
+
instructions: Give the audience a concise overview of what they should understand or remember.
|
|
14
|
+
- title: Details
|
|
15
|
+
role: Support the opening summary with the essential facts, reasoning, or examples.
|
|
16
|
+
instructions: Present only the details needed to substantiate the central message, in a logical order.
|
|
17
|
+
- title: Summary Revisited
|
|
18
|
+
role: Reinforce the central message after the supporting detail.
|
|
19
|
+
instructions: Restate the takeaway in fresh, concise language and connect it to the desired response.
|
|
20
|
+
ai_instructions:
|
|
21
|
+
- Preserve the Summary, Details, Summary sequence.
|
|
22
|
+
- Keep the opening and closing summaries consistent while avoiding word-for-word repetition.
|
|
23
|
+
- Include only details that directly support the central message.
|
|
24
|
+
review_checklist:
|
|
25
|
+
- Is the central message clear in the opening summary?
|
|
26
|
+
- Do all details support that message?
|
|
27
|
+
- Does the closing summary reinforce the intended takeaway?
|
|
28
|
+
references: []
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
id: taps
|
|
2
|
+
name: TAPS
|
|
3
|
+
category: problem-solving
|
|
4
|
+
description: To Be, As Is, Problem, Solution structure for defining a desired state and the change needed to reach it.
|
|
5
|
+
locale: en
|
|
6
|
+
suitable_for:
|
|
7
|
+
- Improvement proposals
|
|
8
|
+
- Transformation roadmaps
|
|
9
|
+
- Problem-solving presentations
|
|
10
|
+
slides:
|
|
11
|
+
- title: To Be
|
|
12
|
+
role: Define the desired future state and its success criteria.
|
|
13
|
+
instructions: Describe a concrete, audience-relevant outcome rather than a vague aspiration.
|
|
14
|
+
- title: As Is
|
|
15
|
+
role: Establish the current state with objective evidence.
|
|
16
|
+
instructions: Show the present performance or behavior using facts that can be compared with the desired state.
|
|
17
|
+
- title: Problem
|
|
18
|
+
role: Identify the gap and the factors preventing progress.
|
|
19
|
+
instructions: Explain the most important root cause or barrier, not merely its symptoms.
|
|
20
|
+
- title: Solution
|
|
21
|
+
role: Present the actions that will close the gap.
|
|
22
|
+
instructions: Connect each proposed action to the identified problem and specify the immediate next step.
|
|
23
|
+
ai_instructions:
|
|
24
|
+
- Make the gap between To Be and As Is explicit and measurable where possible.
|
|
25
|
+
- Distinguish root causes from symptoms.
|
|
26
|
+
- Ensure the solution directly addresses the stated problem.
|
|
27
|
+
review_checklist:
|
|
28
|
+
- Is the desired state concrete and relevant?
|
|
29
|
+
- Is the current state supported by evidence?
|
|
30
|
+
- Does the problem explain the gap between the two states?
|
|
31
|
+
- Does the solution address the root cause and define a next step?
|
|
32
|
+
references: []
|
|
@@ -10,11 +10,13 @@ gem only loads, validates, and applies that data.
|
|
|
10
10
|
bin/slidict new --method prep --topic "New onboarding flow"
|
|
11
11
|
bin/slidict --method scqa --topic "Database migration plan"
|
|
12
12
|
bin/slidict --method pyramid --topic "FY roadmap recommendation"
|
|
13
|
+
bin/slidict --method fabe --topic "Customer analytics platform"
|
|
13
14
|
bin/slidict list-methods
|
|
14
15
|
bin/slidict show-method scqa
|
|
15
16
|
```
|
|
16
17
|
|
|
17
|
-
Built-in methods currently include
|
|
18
|
+
Built-in methods currently include SDS, PREP, DESC, AIDMA, TAPS, FABE, SCQA,
|
|
19
|
+
and Pyramid Principle.
|
|
18
20
|
|
|
19
21
|
## Architecture
|
|
20
22
|
|
|
@@ -32,9 +34,14 @@ This keeps contribution review small: a new built-in method is usually one YAML
|
|
|
32
34
|
|
|
33
35
|
```text
|
|
34
36
|
data/slidict/methods/
|
|
37
|
+
aidma.yml
|
|
38
|
+
desc.yml
|
|
39
|
+
fabe.yml
|
|
35
40
|
prep.yml
|
|
36
41
|
pyramid.yml
|
|
37
42
|
scqa.yml
|
|
43
|
+
sds.yml
|
|
44
|
+
taps.yml
|
|
38
45
|
lib/slidict/presentation_method.rb
|
|
39
46
|
```
|
|
40
47
|
|
data/lib/slidict/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: slidict
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Yusuke Abe
|
|
@@ -60,11 +60,13 @@ extensions: []
|
|
|
60
60
|
extra_rdoc_files: []
|
|
61
61
|
files:
|
|
62
62
|
- ".github/dependabot.yml"
|
|
63
|
+
- ".github/pull_request_template.md"
|
|
63
64
|
- ".github/release-drafter.yml"
|
|
64
65
|
- ".github/workflows/bump-version.yml"
|
|
65
66
|
- ".github/workflows/changelog.yml"
|
|
66
67
|
- ".github/workflows/gem-push.yml"
|
|
67
68
|
- ".github/workflows/test.yml"
|
|
69
|
+
- ".github/workflows/version-check.yml"
|
|
68
70
|
- AGENTS.md
|
|
69
71
|
- CHANGELOG.md
|
|
70
72
|
- CODE_OF_CONDUCT.md
|
|
@@ -72,9 +74,14 @@ files:
|
|
|
72
74
|
- LICENSE.txt
|
|
73
75
|
- README.md
|
|
74
76
|
- Rakefile
|
|
77
|
+
- data/slidict/methods/aidma.yml
|
|
78
|
+
- data/slidict/methods/desc.yml
|
|
79
|
+
- data/slidict/methods/fabe.yml
|
|
75
80
|
- data/slidict/methods/prep.yml
|
|
76
81
|
- data/slidict/methods/pyramid.yml
|
|
77
82
|
- data/slidict/methods/scqa.yml
|
|
83
|
+
- data/slidict/methods/sds.yml
|
|
84
|
+
- data/slidict/methods/taps.yml
|
|
78
85
|
- docs/demo-methods.gif
|
|
79
86
|
- docs/demo-methods.tape
|
|
80
87
|
- docs/demo.gif
|