@maestroagora/agora 1.2.2 → 1.3.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/plugins/marketplace.json +21 -21
- package/.claude-plugin/marketplace.json +13 -13
- package/.claude-plugin/plugin.json +21 -21
- package/.codex-plugin/plugin.json +33 -33
- package/LICENSE +21 -21
- package/README.md +58 -5
- package/assets/agora-orbit.svg +158 -158
- package/package.json +58 -55
- package/scripts/install.mjs +400 -400
- package/scripts/voice/check.mjs +175 -0
- package/scripts/voice/features.mjs +359 -0
- package/scripts/voice/gates.mjs +244 -0
- package/scripts/voice/ingest.mjs +226 -0
- package/scripts/voice/lexicon.mjs +162 -0
- package/scripts/voice/pipeline.mjs +186 -0
- package/scripts/voice/profile.mjs +528 -0
- package/scripts/voice-measure.mjs +369 -0
- package/skills/agora/SKILL.md +161 -15
- package/skills/agora/references/agora-craft.md +391 -0
- package/skills/agora/references/agora-marketing.md +653 -23
- package/skills/agora/references/agora-voice.md +262 -0
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "maestro-agora",
|
|
3
|
-
"interface": {
|
|
4
|
-
"displayName": "Maestro: Agora"
|
|
5
|
-
},
|
|
6
|
-
"plugins": [
|
|
7
|
-
{
|
|
8
|
-
"name": "maestro-agora",
|
|
9
|
-
"source": {
|
|
10
|
-
"source": "url",
|
|
11
|
-
"url": "https://github.com/mbanderas/maestro-agora.git",
|
|
12
|
-
"ref": "main"
|
|
13
|
-
},
|
|
14
|
-
"policy": {
|
|
15
|
-
"installation": "AVAILABLE",
|
|
16
|
-
"authentication": "ON_INSTALL"
|
|
17
|
-
},
|
|
18
|
-
"category": "Productivity"
|
|
19
|
-
}
|
|
20
|
-
]
|
|
21
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "maestro-agora",
|
|
3
|
+
"interface": {
|
|
4
|
+
"displayName": "Maestro: Agora"
|
|
5
|
+
},
|
|
6
|
+
"plugins": [
|
|
7
|
+
{
|
|
8
|
+
"name": "maestro-agora",
|
|
9
|
+
"source": {
|
|
10
|
+
"source": "url",
|
|
11
|
+
"url": "https://github.com/mbanderas/maestro-agora.git",
|
|
12
|
+
"ref": "main"
|
|
13
|
+
},
|
|
14
|
+
"policy": {
|
|
15
|
+
"installation": "AVAILABLE",
|
|
16
|
+
"authentication": "ON_INSTALL"
|
|
17
|
+
},
|
|
18
|
+
"category": "Productivity"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "maestro-agora",
|
|
1
|
+
{
|
|
2
|
+
"name": "maestro-agora",
|
|
3
3
|
"description": "Self-hosted marketplace for Maestro: Agora, the argument-first persuasion skill.",
|
|
4
|
-
"owner": {
|
|
5
|
-
"name": "Mark Laursen",
|
|
6
|
-
"url": "https://github.com/mbanderas"
|
|
7
|
-
},
|
|
8
|
-
"plugins": [
|
|
9
|
-
{
|
|
10
|
-
"name": "maestro-agora",
|
|
11
|
-
"source": "./",
|
|
4
|
+
"owner": {
|
|
5
|
+
"name": "Mark Laursen",
|
|
6
|
+
"url": "https://github.com/mbanderas"
|
|
7
|
+
},
|
|
8
|
+
"plugins": [
|
|
9
|
+
{
|
|
10
|
+
"name": "maestro-agora",
|
|
11
|
+
"source": "./",
|
|
12
12
|
"description": "Turn verified facts into consequential commercial, editorial, interface, and spoken arguments for the real decision."
|
|
13
|
-
}
|
|
14
|
-
]
|
|
15
|
-
}
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "maestro-agora",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"displayName": "Maestro: Agora",
|
|
1
|
+
{
|
|
2
|
+
"name": "maestro-agora",
|
|
3
|
+
"version": "1.3.0",
|
|
4
|
+
"displayName": "Maestro: Agora",
|
|
5
5
|
"description": "Use /agora for argument-first buyer, investor, positioning, editorial, interface, and spoken copy grounded in verified facts.",
|
|
6
|
-
"author": {
|
|
7
|
-
"name": "Mark Laursen",
|
|
8
|
-
"url": "https://github.com/mbanderas"
|
|
9
|
-
},
|
|
10
|
-
"homepage": "https://github.com/mbanderas/maestro-agora",
|
|
11
|
-
"repository": "https://github.com/mbanderas/maestro-agora",
|
|
12
|
-
"license": "MIT",
|
|
13
|
-
"keywords": [
|
|
14
|
-
"agent-skills",
|
|
15
|
-
"agora",
|
|
16
|
-
"marketing",
|
|
17
|
-
"copywriting",
|
|
18
|
-
"claude-code",
|
|
19
|
-
"geo",
|
|
20
|
-
"aeo"
|
|
21
|
-
]
|
|
22
|
-
}
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Mark Laursen",
|
|
8
|
+
"url": "https://github.com/mbanderas"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://github.com/mbanderas/maestro-agora",
|
|
11
|
+
"repository": "https://github.com/mbanderas/maestro-agora",
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"agent-skills",
|
|
15
|
+
"agora",
|
|
16
|
+
"marketing",
|
|
17
|
+
"copywriting",
|
|
18
|
+
"claude-code",
|
|
19
|
+
"geo",
|
|
20
|
+
"aeo"
|
|
21
|
+
]
|
|
22
|
+
}
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "maestro-agora",
|
|
3
|
-
"version": "1.
|
|
1
|
+
{
|
|
2
|
+
"name": "maestro-agora",
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Maestro: Agora turns verified facts into consequential, channel-native arguments without outrunning the proof.",
|
|
5
|
-
"author": {
|
|
6
|
-
"name": "Mark Laursen",
|
|
7
|
-
"url": "https://github.com/mbanderas"
|
|
8
|
-
},
|
|
9
|
-
"homepage": "https://github.com/mbanderas/maestro-agora#readme",
|
|
10
|
-
"repository": "https://github.com/mbanderas/maestro-agora",
|
|
11
|
-
"license": "MIT",
|
|
12
|
-
"keywords": [
|
|
13
|
-
"agora",
|
|
14
|
-
"marketing",
|
|
15
|
-
"copywriting",
|
|
16
|
-
"codex",
|
|
17
|
-
"skills"
|
|
18
|
-
],
|
|
19
|
-
"skills": "./skills/",
|
|
20
|
-
"interface": {
|
|
21
|
-
"displayName": "Maestro: Agora",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Mark Laursen",
|
|
7
|
+
"url": "https://github.com/mbanderas"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/mbanderas/maestro-agora#readme",
|
|
10
|
+
"repository": "https://github.com/mbanderas/maestro-agora",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"agora",
|
|
14
|
+
"marketing",
|
|
15
|
+
"copywriting",
|
|
16
|
+
"codex",
|
|
17
|
+
"skills"
|
|
18
|
+
],
|
|
19
|
+
"skills": "./skills/",
|
|
20
|
+
"interface": {
|
|
21
|
+
"displayName": "Maestro: Agora",
|
|
22
22
|
"shortDescription": "Argument-first copy that earns belief",
|
|
23
23
|
"longDescription": "Install Maestro: Agora in Codex for a direct /agora skill that builds consequential buyer, investor, positioning, editorial, interface, and spoken arguments from verified facts.",
|
|
24
|
-
"developerName": "Mark Laursen",
|
|
25
|
-
"category": "Productivity",
|
|
26
|
-
"capabilities": [
|
|
27
|
-
"Interactive",
|
|
28
|
-
"Write"
|
|
29
|
-
],
|
|
30
|
-
"websiteURL": "https://github.com/mbanderas/maestro-agora",
|
|
31
|
-
"brandColor": "#7C3AED",
|
|
32
|
-
"composerIcon": "./assets/icon.png",
|
|
33
|
-
"defaultPrompt": [
|
|
24
|
+
"developerName": "Mark Laursen",
|
|
25
|
+
"category": "Productivity",
|
|
26
|
+
"capabilities": [
|
|
27
|
+
"Interactive",
|
|
28
|
+
"Write"
|
|
29
|
+
],
|
|
30
|
+
"websiteURL": "https://github.com/mbanderas/maestro-agora",
|
|
31
|
+
"brandColor": "#7C3AED",
|
|
32
|
+
"composerIcon": "./assets/icon.png",
|
|
33
|
+
"defaultPrompt": [
|
|
34
34
|
"/agora position Turn these facts into a consequential company description. Keep investor relevance implicit.",
|
|
35
35
|
"/agora sell Build the strongest supported buyer argument for this surface, then give one useful next action.",
|
|
36
36
|
"/agora invest Build the capital case from timing, mechanism, proof, and what this round changes."
|
|
37
|
-
]
|
|
38
|
-
}
|
|
39
|
-
}
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
}
|
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Mark Laursen
|
|
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.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Mark Laursen
|
|
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.
|
package/README.md
CHANGED
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
<a href="LICENSE"><img alt="MIT license" src="https://img.shields.io/badge/license-MIT-7c3aed" /></a>
|
|
13
13
|
</p>
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Words cannot rescue a missing argument. Agora starts with the decision behind the copy.
|
|
16
16
|
|
|
17
17
|
Give it verified facts, the real audience, and the surface where the copy will live. Agora finds the consequential shift or stake, explains the mechanism that changes it, selects the proof that matters most, and turns that case into channel-native copy. The result can feel urgent, ambitious, reassuring, or direct. It cannot outrun the evidence.
|
|
18
18
|
|
|
19
|
-
Use Agora for landing pages, ads, company profiles, investor narratives, sales
|
|
19
|
+
Use Agora for landing pages, ads, company profiles, investor narratives, sales emails, product copy, paywalls, editorial work, interface text, and spoken scripts.
|
|
20
20
|
|
|
21
21
|
**One suite: fuse the answer, make the case, guard the spend.**
|
|
22
22
|
|
|
@@ -37,6 +37,14 @@ The default user install writes the same reviewed skill to:
|
|
|
37
37
|
- `~/.agents/skills/agora` for Codex and Agent Skills-compatible tools.
|
|
38
38
|
- `~/.claude/skills/agora` for Claude Code.
|
|
39
39
|
|
|
40
|
+
Install only the user-level Codex skill:
|
|
41
|
+
|
|
42
|
+
```sh
|
|
43
|
+
npx -y @maestroagora/agora --target codex --scope user
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Open a new task or restart the host after installation so its skill registry and slash menu reload.
|
|
47
|
+
|
|
40
48
|
Choose a target or project-local scope when needed:
|
|
41
49
|
|
|
42
50
|
```sh
|
|
@@ -116,6 +124,7 @@ This keeps a 35-word profile from sounding like a compressed pitch deck. It also
|
|
|
116
124
|
| `INVEST` | Actual funding, capital-allocation, diligence, investor-pitch, and fundraising work |
|
|
117
125
|
| `INFORM` | Editorial and educational work |
|
|
118
126
|
| `TRANSACT` | Buttons, confirmations, alerts, forms, and utility microcopy |
|
|
127
|
+
| `VOICE` | A modifier on any of the above, not a job of its own. `--voice <name>` writes in a measured author profile |
|
|
119
128
|
|
|
120
129
|
`POSITION` is the default for descriptive company profiles, even when investors may read them. Agora makes relevance emerge from the shift, mechanism, wedge, and proof. It does not insert phrases such as "for investors" or "merits evaluation."
|
|
121
130
|
|
|
@@ -152,7 +161,7 @@ Agora builds the argument before it runs publication and style checks. Those che
|
|
|
152
161
|
- Unsupported claims are narrowed or removed, not buried under a disclaimer.
|
|
153
162
|
- Facts, inference, interpretation, aspiration, and promises remain distinct.
|
|
154
163
|
- GEO/AEO improves written clarity and evidence structure after the argument exists.
|
|
155
|
-
- Human-voice cleanup removes prompt leakage, canned templates, generic significance tails, generated
|
|
164
|
+
- Human-voice cleanup removes prompt leakage, canned templates, generic significance tails, and smart quotes. A separate hard invariant bans U+2014 from the entire generated response, including copied text and commentary, with a mandatory final character scan.
|
|
156
165
|
- Necessary factual series survive the cleanup.
|
|
157
166
|
- One ready-to-use result comes first. Near-duplicate variants appear only when requested.
|
|
158
167
|
|
|
@@ -164,6 +173,10 @@ For written assets, Agora answers the reader's question early when the format ca
|
|
|
164
173
|
|
|
165
174
|
For indexable public pages, Agora can also flag relevant crawlability, canonical, sitemap, metadata, structured-data, accessibility, and delivery checks. These practices can improve eligibility and citability. They cannot promise retrieval, selection, quotation, citation, ranking, recommendation, referral, conversion, or revenue.
|
|
166
175
|
|
|
176
|
+
## AI visibility after publication
|
|
177
|
+
|
|
178
|
+
Agora turns verified facts into argument-first copy. It does not measure whether AI answers mention your brand or cite your sources. [CiteSurge](https://CiteSurge.com) is a separate platform for citability engineering and cross-engine AI visibility tracking.
|
|
179
|
+
|
|
167
180
|
## How Agora works
|
|
168
181
|
|
|
169
182
|
<p align="center">
|
|
@@ -178,11 +191,51 @@ skills/agora/
|
|
|
178
191
|
├── agents/
|
|
179
192
|
│ └── openai.yaml
|
|
180
193
|
└── references/
|
|
181
|
-
|
|
194
|
+
├── agora-craft.md
|
|
195
|
+
├── agora-marketing.md
|
|
196
|
+
└── agora-voice.md
|
|
182
197
|
```
|
|
183
198
|
|
|
184
199
|
`SKILL.md` is the concise operating contract. `references/agora-marketing.md` holds the original doctrine, research evidence grades, ethical limits, channel rules, AI-writing-tell controls, GEO/AEO boundaries, examples, and evaluation guidance.
|
|
185
200
|
|
|
201
|
+
`references/agora-craft.md` is loaded only when the task needs it. It covers four narrower domains: headlines and titles across each publishing surface, awareness and sophistication staging with its routing table, emotion written from a fact set that contains no outcome data, and prose rhythm. Every rule in it carries an evidence grade and a stated failure condition, every number is either sourced or labelled a governance default, and the two cadence conflicts the research left open are recorded rather than resolved.
|
|
202
|
+
|
|
203
|
+
`references/agora-voice.md` governs `VOICE`, the one mode that modifies another rather than replacing it. `--voice <name>` loads a measured author profile on top of whichever job was already selected, and `voice build`, `voice list`, and `voice check` manage the profiles themselves. A profile is measured rather than described: it records sentence and paragraph distributions, function words, punctuation, openings, and stance, states plainly what the corpus was too small to measure, and refuses certification below 5,000 clean author-controlled words.
|
|
204
|
+
|
|
205
|
+
Profiles are stored at `~/.agora/voices/`, deliberately outside the skill directory, because the documented update path replaces that directory and would destroy them. Voice enters at level 6 of the conflict hierarchy: it never licenses an unsupported claim, never overrides required or legal phrasing, and never overrides the em-dash ban. It carries exactly one exception, written down because the alternative is a gate that strips the voice it was loaded to keep: a profile's measured owned-vocabulary list suppresses the generic AI-vocabulary ban for those specific words only. Building or applying a third-party profile for publication under that person's name is refused.
|
|
206
|
+
|
|
207
|
+
### Building a voice profile
|
|
208
|
+
|
|
209
|
+
Measurement is computed by a shipped engine, not estimated by the model, because a model asked to describe an author's voice writes flattery:
|
|
210
|
+
|
|
211
|
+
```sh
|
|
212
|
+
npx -p @maestroagora/agora agora-voice build --name house \
|
|
213
|
+
--register blog --from ./posts \
|
|
214
|
+
--register email --from ./letters
|
|
215
|
+
|
|
216
|
+
npx -p @maestroagora/agora agora-voice list
|
|
217
|
+
npx -p @maestroagora/agora agora-voice check --voice house ./draft.md
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
The engine reads Markdown, plain text, and HTML from files, directories, and URLs. It refuses binary document formats by name rather than extracting them partially, because every admission threshold counts clean author-controlled words and a partial extraction would move all of them silently. Quotations, code, tables, signatures, front matter, and headings are stripped before anything is counted, and the profile records what the cleaning removed.
|
|
221
|
+
|
|
222
|
+
It measures nine feature families: sentence length with percentiles and binned shape, clause structure as a labelled conjunction proxy, function words, punctuation, paragraph shape, lexical diversity by moving-window and decay-based measures, person and stance, sentence openings, and contraction rate scoped to contexts where both forms were grammatical. Raw type-token ratio is withheld by rule, since it falls mechanically as texts grow. Anything the corpus cannot support is written as insufficient data.
|
|
223
|
+
|
|
224
|
+
Four admission gates run before a profile is certified: at least 10 independent documents with none above 25 percent of clean tokens, 2,500 clean words across 3 documents before a register earns its own numbers, a two-part feature stability rule, and a heterogeneity stop that offers two profiles rather than averaging two registers into a voice belonging to nobody. Below 5,000 clean words nothing is written at all and the tool reports what the corpus needs.
|
|
225
|
+
|
|
226
|
+
Once a default profile exists, it applies to every mode. Opt out per request with `--no-voice` or `neutral`, or name a different profile with `--voice <name>`.
|
|
227
|
+
|
|
228
|
+
## Change record
|
|
229
|
+
|
|
230
|
+
| Version | What changed |
|
|
231
|
+
|---|---|
|
|
232
|
+
| 1.3.0 | `VOICE` becomes executable. A deterministic measurement engine ships as the `agora-voice` command: a frozen tokenizer, sentence segmenter, and lexicon; ingestion and cleaning for Markdown, plain text, and HTML from files, directories, and URLs, with binary formats refused by name; nine measured feature families with withheld rather than guessed values; all four corpus admission gates; profile and registry writing under `~/.agora/voices/`; and `voice check` with draft-length bands, register matching, and a phrase-overlap index stored as hashed token runs rather than as corpus text. A default profile now applies to every mode, with `--no-voice` and `neutral` as the opt-outs. Two blind eval cases added for build-from-corpus and the owned-vocabulary-against-tell-gate conflict. Two new references. `references/agora-craft.md` covers headlines and titles per publishing surface, awareness and sophistication staging with its routing table, emotion written from a fact set that carries no outcome data, and prose rhythm. `references/agora-voice.md` adds the `VOICE` modifier: measured author profiles stored outside the skill directory, a refusal floor below 5,000 clean author-controlled words, level-6 placement in the conflict hierarchy, the owned-vocabulary exception to the AI-vocabulary ban, and a refusal for third-party profiling intended for publication under that person's name. The Evidence register gains `Myths this document must never assert`, naming twenty-one high-traffic myths with what may be said instead. Four new applied pairs and six reworked, covering category orientation, superlative against specific, a label that overstates its click, and heading variety across one page. Blind eval corpus grows from 21 cases to 26. Two internal contradictions removed: the two-or-three-sentence passage unit that the same document had already refuted, and an unlabelled numeric threshold in the deterministic invariants. The validator now enumerates files through git's own ignore rules rather than walking the working directory, so scratch that exists only in a working copy no longer decides whether the repository is valid. |
|
|
233
|
+
| 1.2.2 | Hard ban on the U+2014 character across the entire response, enforced as an immutable output constraint rather than a final-copy cleanup. |
|
|
234
|
+
| 1.2.1 | First-read comprehension gate, specialized-term gate, and CTA standard. Comprehension moved above compression, citability, and differentiation in the conflict hierarchy. |
|
|
235
|
+
| 1.2.0 | Blind evaluation corpus with a generation contract, pairwise adjudication, and absolute vetoes. |
|
|
236
|
+
|
|
237
|
+
Every rule added in 1.3.0 carries an evidence grade and a stated failure condition. Every numeric threshold in the references is either followed by a source link or labelled a governance default in the same sentence. Two conflicts the research left open are recorded rather than resolved.
|
|
238
|
+
|
|
186
239
|
## Verify the package
|
|
187
240
|
|
|
188
241
|
```sh
|
|
@@ -190,7 +243,7 @@ npm run check
|
|
|
190
243
|
npx -y @maestroagora/agora --dry-run
|
|
191
244
|
```
|
|
192
245
|
|
|
193
|
-
The validation suite checks the strict three-file skill root,
|
|
246
|
+
The validation suite checks the strict three-file skill root, current behavior and release contracts, plugin metadata, relative links, installer behavior, source-link retention, project-agnostic content, line-ending parity, and the exact npm package allowlist. A committed blind-eval corpus covers known failure modes without passing expected answers or grading rules into generation.
|
|
194
247
|
|
|
195
248
|
## License
|
|
196
249
|
|