asciidoc-pubkit 0.8.3 → 0.8.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -0
- data/README.md +36 -9
- data/data/review-rules.ja.yml +19 -0
- data/data/writing/ja/criteria.md +9 -0
- data/lib/asciidoc_pubkit/session.rb +18 -0
- data/lib/asciidoc_pubkit.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7f629e73e42aa273d3f13a77a917208bf9d54a7c53f024c89c0f7f8fae596934
|
|
4
|
+
data.tar.gz: fdfd437f9a8c7735b873b3df5da5c55662be58a7871e5c3017f360f09539c382
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d02a86fc684bed05d233025281de87ecd8adf45ed15ae72b57b6e15c12d3572df48b3697294768a3aab3de5e40e1d02ea0828c5a39efd6c3b8f4d68c75f3f2ee
|
|
7
|
+
data.tar.gz: 54d8f0862dc0b45f78184613e12098569486541378b0fd72b2e218b0daf94846c3513536620c5a5a6a90197d8f07ef6e1526b153523e3d87e2867dd1c15ac58d
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.8.4 — 2026-10-02
|
|
4
|
+
|
|
5
|
+
- Require passage-specific review decisions in prose and heading prompts instead
|
|
6
|
+
of inferring keep/revise from retained strings. Leave unreviewed items pending,
|
|
7
|
+
reconcile decisions with edits or proposals, and report mechanical verification,
|
|
8
|
+
candidate handling, and editorial completion separately. Protect session files
|
|
9
|
+
and baseline snapshots from editing and formatting tools. These instructions
|
|
10
|
+
do not add automatic decision-record or semantic validation to verification.
|
|
11
|
+
- Detect inflected invocation, interpretation, retrieval, and collection verbs
|
|
12
|
+
for varied objects through configured MeCab lemmas; retain contextual phrase
|
|
13
|
+
precedence, allow lists, and explicit literal-mode coverage. Add the exact
|
|
14
|
+
contextual phrase 木全体 to cover IPADIC surname segmentation.
|
|
15
|
+
- Add regression cases based on investigated manuscript variants and test review
|
|
16
|
+
instructions in both scopes and modes with session artifacts kept intact.
|
|
17
|
+
|
|
3
18
|
## 0.8.3 — 2026-10-02
|
|
4
19
|
|
|
5
20
|
- Refine shared Japanese writing and review criteria for established technical
|
data/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
A toolkit for authoring and reviewing AsciiDoc books.
|
|
9
9
|
|
|
10
|
-
Version 0.8.
|
|
10
|
+
Version 0.8.4 provides shared Japanese technical writing criteria, an authoring
|
|
11
11
|
prompt, separate prose and heading review prompts, manuscript scoring, and
|
|
12
12
|
baseline verification for edited manuscripts, plus explicit prose-only mechanical
|
|
13
13
|
replacements using a limited prh-format rule set.
|
|
@@ -16,7 +16,7 @@ Japanese text is retained in manuscript excerpts, rule dictionaries, and fixture
|
|
|
16
16
|
|
|
17
17
|
## Available features
|
|
18
18
|
|
|
19
|
-
The following commands are available in version 0.8.
|
|
19
|
+
The following commands are available in version 0.8.4.
|
|
20
20
|
|
|
21
21
|
| Feature | Commands | Behavior |
|
|
22
22
|
| --- | --- | --- |
|
|
@@ -107,7 +107,7 @@ Add the gem to your project's `Gemfile` to manage its version with Bundler:
|
|
|
107
107
|
|
|
108
108
|
```ruby
|
|
109
109
|
source 'https://rubygems.org'
|
|
110
|
-
gem 'asciidoc-pubkit', '~> 0.8.
|
|
110
|
+
gem 'asciidoc-pubkit', '~> 0.8.4'
|
|
111
111
|
```
|
|
112
112
|
|
|
113
113
|
Then install dependencies and run the CLI through Bundler:
|
|
@@ -129,7 +129,7 @@ git clone https://github.com/cybergarage/asciidoc-pubkit.git
|
|
|
129
129
|
cd asciidoc-pubkit
|
|
130
130
|
bundle install
|
|
131
131
|
gem build asciidoc-pubkit.gemspec
|
|
132
|
-
gem install ./asciidoc-pubkit-0.8.
|
|
132
|
+
gem install ./asciidoc-pubkit-0.8.4.gem
|
|
133
133
|
asciidoc-pubkit --version
|
|
134
134
|
```
|
|
135
135
|
|
|
@@ -153,7 +153,7 @@ asciidoc-pubkit writing prompt --lang ja --output writing-prompt.md
|
|
|
153
153
|
```
|
|
154
154
|
|
|
155
155
|
For example, `--lang en` exits with an unsupported-language error. No English
|
|
156
|
-
review or writing criteria are shipped in 0.8.
|
|
156
|
+
review or writing criteria are shipped in 0.8.4.
|
|
157
157
|
|
|
158
158
|
For a small trial, use `examples/book.adoc` as the scan input. Its Japanese
|
|
159
159
|
paragraphs deliberately contain review candidates; its code block must remain
|
|
@@ -612,7 +612,21 @@ asciidoc-pubkit review prompt .pubkit/review --mode diagnose
|
|
|
612
612
|
|
|
613
613
|
`revise` is the default and asks the agent to edit relevant prose. `diagnose` asks
|
|
614
614
|
for findings and proposed revisions without editing. Both modes require the agent
|
|
615
|
-
to distinguish **revise**, **keep**, and **needs-evidence** decisions.
|
|
615
|
+
to distinguish **revise**, **keep**, and **needs-evidence** decisions. Each decision
|
|
616
|
+
needs a passage-specific reason. Whether a matched string remains or disappears
|
|
617
|
+
cannot determine that decision; unchanged paragraphs and remaining candidates
|
|
618
|
+
must not receive automatic `keep` records. Unreviewed items remain pending.
|
|
619
|
+
|
|
620
|
+
Version 0.8.4 prompts require the reviewer to reconcile decisions with actual
|
|
621
|
+
edits (or proposed revisions in diagnose mode), review paragraphs or headings
|
|
622
|
+
without candidates, and inspect newly detected or remaining candidates after
|
|
623
|
+
verification. They request separate reports for mechanical preservation,
|
|
624
|
+
candidate decisions, and paragraph or heading quality review, with counts and
|
|
625
|
+
unresolved items. Protected-scope concerns are separate proposals, not evidence
|
|
626
|
+
of editorial approval. Pending items make the review incomplete.
|
|
627
|
+
These are reviewer instructions: the gem does not validate a decision ledger
|
|
628
|
+
or prove that an AI or human followed the instructions. Keep session metadata
|
|
629
|
+
and baseline snapshots immutable; format only authorized manuscript spans.
|
|
616
630
|
|
|
617
631
|
The single Markdown output includes every selected paragraph once, in document
|
|
618
632
|
order, with the shared criteria saved at scan time, candidates, saved settings,
|
|
@@ -649,7 +663,10 @@ Non-prose comparison ignores empty separator lines and trailing whitespace;
|
|
|
649
663
|
listing, literal, and passthrough block content is additionally compared as parsed
|
|
650
664
|
lines. Inline protection is heuristic, not a complete AsciiDoc inline parser.
|
|
651
665
|
Successful verification does not prove meaning preservation, technical accuracy,
|
|
652
|
-
or release readiness: `meaning_verified` is always `false`.
|
|
666
|
+
or release readiness: `meaning_verified` is always `false`. Verification does
|
|
667
|
+
not read candidate decision records or certify editorial completion. A passing
|
|
668
|
+
mechanical result must be reported separately from the reviewer's quality and
|
|
669
|
+
completion assessment.
|
|
653
670
|
|
|
654
671
|
| Exit code | Meaning |
|
|
655
672
|
| --- | --- |
|
|
@@ -1017,6 +1034,16 @@ requirements, and collecting errors from catching them. Suggested alternatives
|
|
|
1017
1034
|
are not automatic replacement rules. Start a new review session to include
|
|
1018
1035
|
updated rules and criteria; existing sessions retain their saved versions.
|
|
1019
1036
|
|
|
1037
|
+
Version 0.8.4 also configures `呼ぶ`, `読み取る`, `拾う`, and the sahen predicate
|
|
1038
|
+
`回収する` as weak-predicate candidates. MeCab matches their inflections for
|
|
1039
|
+
any object, including `指示と宣言を読み取ります` and `最後のdetailsを拾います`.
|
|
1040
|
+
This broadens review cues, not mandatory terminology changes; everyday and
|
|
1041
|
+
technically valid uses can be retained with a specific reason. Literal mode
|
|
1042
|
+
matches only the selected surfaces in the YAML. Longer contextual phrases take
|
|
1043
|
+
precedence. `木全体` is an explicit contextual phrase in both modes because
|
|
1044
|
+
IPADIC can parse `木全` as a surname; this narrowly addresses that segmentation
|
|
1045
|
+
case without treating all names or compounds containing `木` as trees.
|
|
1046
|
+
|
|
1020
1047
|
Metaphorical-operation candidates include limited exact surfaces of
|
|
1021
1048
|
`地味に効く`, `静かに壊れる`, `時間を溶かす`, and `側に倒す`, including selected polite,
|
|
1022
1049
|
past, and connective forms listed in the packaged YAML. They use contextual
|
|
@@ -1069,12 +1096,12 @@ reports analyzer changes instead of treating results from different dictionaries
|
|
|
1069
1096
|
as directly comparable. Prompt generation uses saved evidence and does not need
|
|
1070
1097
|
MeCab. Changed rules or dictionary settings require a new scan.
|
|
1071
1098
|
|
|
1072
|
-
Sessions from earlier tool versions are not compatible with 0.8.
|
|
1099
|
+
Sessions from earlier tool versions are not compatible with 0.8.4 (session schema 2). Keep the original baseline for
|
|
1073
1100
|
an ongoing review and finish it with the original version, or start a new review
|
|
1074
1101
|
pass in a different directory:
|
|
1075
1102
|
|
|
1076
1103
|
```sh
|
|
1077
|
-
asciidoc-pubkit review scan book.adoc --output .pubkit/review-0.8.
|
|
1104
|
+
asciidoc-pubkit review scan book.adoc --output .pubkit/review-0.8.4
|
|
1078
1105
|
```
|
|
1079
1106
|
|
|
1080
1107
|
Severity describes review priority, not proof of an error. There is no AI-authorship
|
data/data/review-rules.ja.yml
CHANGED
|
@@ -59,6 +59,17 @@ terms:
|
|
|
59
59
|
- 確かめます
|
|
60
60
|
- 探します
|
|
61
61
|
- 追えます
|
|
62
|
+
# Inspect retrieval, interpretation, and invocation for any object.
|
|
63
|
+
- 呼ぶ
|
|
64
|
+
- 呼びます
|
|
65
|
+
- 呼んで
|
|
66
|
+
- 呼んだ
|
|
67
|
+
- 読み取る
|
|
68
|
+
- 読み取ります
|
|
69
|
+
- 拾う
|
|
70
|
+
- 拾います
|
|
71
|
+
- 回収する
|
|
72
|
+
- 回収します
|
|
62
73
|
# Construction, preparation, and combination.
|
|
63
74
|
- 用意します
|
|
64
75
|
- 作ります
|
|
@@ -136,6 +147,7 @@ terms:
|
|
|
136
147
|
- わけではありません
|
|
137
148
|
- 別です
|
|
138
149
|
# Unusual technical translations; shared criteria own the alternatives.
|
|
150
|
+
- 木全体
|
|
139
151
|
- 構築入口
|
|
140
152
|
- 実装の読解
|
|
141
153
|
- エラーを回収する
|
|
@@ -289,6 +301,12 @@ verbs:
|
|
|
289
301
|
追う:
|
|
290
302
|
- 追う
|
|
291
303
|
- 追える
|
|
304
|
+
呼ぶ:
|
|
305
|
+
- 呼ぶ
|
|
306
|
+
読み取る:
|
|
307
|
+
- 読み取る
|
|
308
|
+
拾う:
|
|
309
|
+
- 拾う
|
|
292
310
|
ある:
|
|
293
311
|
- ある
|
|
294
312
|
sahen:
|
|
@@ -302,6 +320,7 @@ sahen:
|
|
|
302
320
|
- 区別
|
|
303
321
|
- 解消
|
|
304
322
|
- 混同
|
|
323
|
+
- 回収
|
|
305
324
|
negative_only:
|
|
306
325
|
- 到達する
|
|
307
326
|
- 意味する
|
data/data/writing/ja/criteria.md
CHANGED
|
@@ -248,6 +248,15 @@ conditions, negation, numbers, actors, causes, and implementation requirements.
|
|
|
248
248
|
For example, removing a unique constraint from a duplicate-message check can
|
|
249
249
|
lose a concurrency requirement even when the revised paragraph sounds clearer.
|
|
250
250
|
Record unresolved evidence and keep necessary repetition or qualifications.
|
|
251
|
+
A review decision must come from reading the passage and checking the applicable
|
|
252
|
+
criteria. A retained word does not establish a `keep` decision, and a removed
|
|
253
|
+
word does not establish a satisfactory revision. Give passage-specific reasons
|
|
254
|
+
for retaining terminology, conditions, and distinctions; leave unreviewed items
|
|
255
|
+
pending rather than filling them with generic maintenance reasons. Compare the
|
|
256
|
+
actual revision with the original claim, including paragraphs without machine
|
|
257
|
+
candidates. Keep unresolved evidence and protected-scope proposals visible in
|
|
258
|
+
the completion report.
|
|
259
|
+
|
|
251
260
|
No candidate count or mechanical verification result proves semantic correctness.
|
|
252
261
|
Sentence length, punctuation, and list density can help locate passages to read;
|
|
253
262
|
they are not fixed acceptance thresholds. Keep lists for parallel items and
|
|
@@ -184,6 +184,8 @@ module AsciidocPubkit
|
|
|
184
184
|
After editing, reread each paragraph in context. Report unresolved issues and do not claim publication readiness.
|
|
185
185
|
Mechanical verification does not establish semantic correctness.
|
|
186
186
|
|
|
187
|
+
#{review_process('paragraph', mode)}
|
|
188
|
+
|
|
187
189
|
## Shared prose criteria
|
|
188
190
|
|
|
189
191
|
Apply these criteria only within the running-prose edit scope above. Their
|
|
@@ -318,6 +320,8 @@ module AsciidocPubkit
|
|
|
318
320
|
original title, proposed title when applicable, and a short reason.
|
|
319
321
|
Also track each candidate ID and its disposition. Do not claim publication readiness.
|
|
320
322
|
|
|
323
|
+
#{review_process('heading', mode)}
|
|
324
|
+
|
|
321
325
|
## Shared preservation and writing criteria
|
|
322
326
|
|
|
323
327
|
The following common criteria provide meaning and terminology guidance.
|
|
@@ -372,6 +376,20 @@ module AsciidocPubkit
|
|
|
372
376
|
text
|
|
373
377
|
end
|
|
374
378
|
|
|
379
|
+
def review_process(unit, mode)
|
|
380
|
+
<<~TEXT
|
|
381
|
+
## Review decisions and completion
|
|
382
|
+
|
|
383
|
+
Keep manifest.json, document.json, findings.json, and every baseline/ snapshot immutable. Restrict editing and formatting tools to the authorized source spans; never run them over the session directory.
|
|
384
|
+
Record each reviewed #{unit} ID and each candidate ID with revise, keep, or needs-evidence and a reason grounded in that passage. For keep, identify the concrete referent, operation, condition, necessary distinction, or established terminology that justifies retaining it. A shared generic reason does not establish individual review.
|
|
385
|
+
Never infer revise or keep from whether the matched string survives, disappears, or changes. Do not bulk-assign keep to unchanged #{unit}s or remaining candidates. An unreviewed item stays pending; use needs-evidence only after review identifies missing evidence.
|
|
386
|
+
Review #{unit}s without candidates against the shared criteria as well. For concerns outside the editable scope, report the location and a separate out-of-scope proposal; do not count protection as an editorial keep decision or edit protected content.
|
|
387
|
+
#{mode == 'revise' ? 'Compare the original and edited passages, check both information loss and unsupported additions, and reconcile each recorded decision with the actual diff. After verification, individually inspect newly detected or remaining candidates; retain the original candidate IDs in the review record.' : 'Compare each proposed revision with the original passage for information loss and unsupported additions. A revise decision means a proposed revision, not an applied edit.'}
|
|
388
|
+
Report mechanical preservation, candidate decisions, and #{unit}-level quality review separately. State selected and reviewed #{unit} counts, candidate decision counts, pending items, needs-evidence items, out-of-scope concerns, and evidence used. If any selected item or candidate remains pending, report the review as incomplete.
|
|
389
|
+
Mechanical verification does not read or validate these decision records. Its passed result and candidate counts do not establish review completion or writing quality; meaning_verified remains false. Do not claim semantic correctness from those checks.
|
|
390
|
+
TEXT
|
|
391
|
+
end
|
|
392
|
+
|
|
375
393
|
def prompt_data(data, language)
|
|
376
394
|
# Keep arbitrary manuscript text and custom settings inside their data fence.
|
|
377
395
|
fence = '`' * [3, (data.scan(/`+/).map(&:length).max || 0) + 1].max
|
data/lib/asciidoc_pubkit.rb
CHANGED