@maestroagora/agora 1.6.0 → 1.8.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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "maestro-agora",
3
- "description": "Self-hosted marketplace for Maestro: Agora, the argument-first persuasion, technical explanation, case-study, and investment-writing skill.",
3
+ "description": "Self-hosted marketplace for Maestro: Agora, the argument-first writing and publication artifact review skill.",
4
4
  "owner": {
5
5
  "name": "Mark Laursen",
6
6
  "url": "https://github.com/mbanderas"
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "maestro-agora",
11
11
  "source": "./",
12
- "description": "Write user-directed commercial, technical, case-study, investment, interface, and spoken arguments that preserve the user's claims, framing, and creative choices."
12
+ "description": "Write user-directed commercial, technical, case-study, investment, interface, and spoken arguments, then inspect local publication artifacts when explicitly requested."
13
13
  }
14
14
  ]
15
15
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "maestro-agora",
3
- "version": "1.6.0",
3
+ "version": "1.8.0",
4
4
  "displayName": "Maestro: Agora",
5
- "description": "Use /agora for persuasive writing, technical explanation, compelling case studies, fundraising, investment analysis, and spoken or written copy.",
5
+ "description": "Use /agora for persuasive writing, technical explanation, case studies, investment analysis, spoken or written copy, and explicit publication artifact audits.",
6
6
  "author": {
7
7
  "name": "Mark Laursen",
8
8
  "url": "https://github.com/mbanderas"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "maestro-agora",
3
- "version": "1.6.0",
4
- "description": "Maestro: Agora writes clear persuasion, technical explanations, compelling case studies, and investment communication to the user's brief.",
3
+ "version": "1.8.0",
4
+ "description": "Maestro: Agora writes clear persuasion, technical explanations, case studies, and investment communication, then audits local publication artifacts when requested.",
5
5
  "author": {
6
6
  "name": "Mark Laursen",
7
7
  "url": "https://github.com/mbanderas"
@@ -25,8 +25,8 @@
25
25
  "skills": "./skills/",
26
26
  "interface": {
27
27
  "displayName": "Maestro: Agora",
28
- "shortDescription": "Persuasion, science, cases, and capital",
29
- "longDescription": "Install Maestro: Agora in Codex for a direct /agora skill that follows the user's claims, framing, creative choices, and intended action across commercial arguments, technical explanations, case studies, and investment communication.",
28
+ "shortDescription": "Writing and publication artifact review",
29
+ "longDescription": "Install Maestro: Agora in Codex for a direct /agora skill that follows the user's claims, framing, creative choices, and intended action across commercial arguments, technical explanations, case studies, and investment communication, with explicit read-only privacy and provenance audits for local publication artifacts.",
30
30
  "developerName": "Mark Laursen",
31
31
  "category": "Productivity",
32
32
  "capabilities": [
@@ -40,7 +40,8 @@
40
40
  "/agora sell Write the strongest hero from this brief and destination.",
41
41
  "/agora science Explain this technical subject with the certainty and framing I specify.",
42
42
  "/agora case study Turn this project material into the case study I describe.",
43
- "/agora invest Build this fundraising asset from my thesis, claims, urgency, and plan."
43
+ "/agora invest Build this fundraising asset from my thesis, claims, urgency, and plan.",
44
+ "/agora publication audit Inspect this local file for hidden Unicode, metadata, and provenance."
44
45
  ]
45
46
  }
46
47
  }
package/DISCLAIMER.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # User Responsibility and Disclaimer
2
2
 
3
- Last updated: August 10, 2026
3
+ Last updated: August 12, 2026
4
4
 
5
5
  ## Purpose
6
6
 
@@ -23,6 +23,8 @@ That responsibility includes:
23
23
 
24
24
  Agora can perform claim, evidence, permission, confidentiality, disclosure, diligence, or compliance review when explicitly requested. Such review is automated assistance, not professional advice or a guarantee that content is accurate, lawful, complete, effective, or suitable for a particular purpose.
25
25
 
26
+ Agora can also inspect selected local publication artifacts for configured privacy, metadata, hidden-text, review-data, and provenance signals. That inspection is partial and format-dependent. It is not a watermark remover, AI detector, authorship determination, forensic examination, anonymization service, or guarantee that a file is clean, safe, private, authentic, human-written, or free of undisclosed provenance. `NOT_FOUND_BY_THIS_CHECK` applies only to the named check. `UNKNOWN` coverage remains unresolved.
27
+
26
28
  ## No monitoring or approval duty
27
29
 
28
30
  The project maintainer does not review, approve, monitor, or control what users ask Agora to produce or how users use its output. Availability of a feature or generated result does not constitute approval, endorsement, verification, or legal clearance.
package/PRIVACY.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Privacy Notice
2
2
 
3
- Last updated: August 10, 2026
3
+ Last updated: August 12, 2026
4
4
 
5
5
  ## Scope
6
6
 
@@ -35,6 +35,16 @@ These files can contain sensitive or identifiable writing. Users control the cor
35
35
 
36
36
  When a user supplies an HTTP or HTTPS URL as a corpus source, the voice tool fetches that URL from the user's computer. The remote website may receive ordinary request and network information under its own privacy policy. The fetched content and resulting profile are not sent to the Agora maintainer by the tool.
37
37
 
38
+ ## Publication audit
39
+
40
+ The optional `agora-publication-audit` tool reads local files selected by the user. It computes file hashes and can inspect configured text controls, document properties, comments, notes, tracked changes, image metadata containers, and provenance signals. It does not send source files or audit reports to the Agora maintainer.
41
+
42
+ The tool does not change source files. It reads each source again after inspection and reports whether its SHA-256 hash stayed unchanged. A report is written to disk only when the user supplies `--output`; the tool refuses to overwrite an existing report.
43
+
44
+ Audit reports redact metadata values and absolute paths by default. `--show-values` and `--include-paths` can place sensitive or identifying information in terminal output, logs, copied reports, host prompts, or files selected by the user. Users control those options and the storage, sharing, retention, and deletion of reports.
45
+
46
+ ExifTool, when already installed, runs locally in read mode to add metadata coverage. C2PA verification runs only when the user supplies `--verify-c2pa`; Agora supplies a local settings file that disables remote-manifest fetching. ExifTool, c2patool, the operating system, terminal, host application, and any separately configured wrappers remain third-party software outside the Agora project's control.
47
+
38
48
  ## GitHub interactions
39
49
 
40
50
  GitHub processes information when users visit the repository, download releases, open issues, create pull requests, or otherwise use GitHub. GitHub's [General Privacy Statement](https://docs.github.com/en/site-policy/privacy-policies/github-general-privacy-statement) applies to that processing.
@@ -45,7 +55,7 @@ The maintainer may receive and use information a person voluntarily submits thro
45
55
 
46
56
  Agora does not maintain a project-operated server containing user prompts, drafts, outputs, or voice profiles.
47
57
 
48
- Users can delete locally stored Agora files and voice profiles using their operating system. Data held by npm, GitHub, a host application, a model provider, a remote website, or another third party is governed by that third party's retention and deletion process.
58
+ Users can delete locally stored Agora files, voice profiles, and saved audit reports using their operating system. Data held by npm, GitHub, a host application, a model provider, a remote website, or another third party is governed by that third party's retention and deletion process.
49
59
 
50
60
  ## Changes and contact
51
61
 
package/README.md CHANGED
@@ -122,6 +122,31 @@ Add modifiers when the subject or asset needs them:
122
122
 
123
123
  In Codex, `$agora` and the skills picker can also select the installed skill. Other hosts may expose skills through a picker or mention syntax. Asking the agent to use the Agora skill remains portable.
124
124
 
125
+ ## Publication privacy and provenance
126
+
127
+ Agora writes copy. It does not create SVG, PNG, JPEG, PDF, DOCX, or PPTX files by itself. Other document, presentation, PDF, site, design, or image tools may place Agora copy into those artifacts.
128
+
129
+ When you explicitly request a publication audit, Agora can inspect the local artifact before it leaves your control:
130
+
131
+ ```text
132
+ /agora publication audit Inspect ./launch-deck.pptx before I share it.
133
+ ```
134
+
135
+ Run the packaged read-only inspector directly when you want a deterministic report:
136
+
137
+ ```sh
138
+ npx -y -p @maestroagora/agora@latest agora-publication-audit ./launch-deck.pptx
139
+ npx -y -p @maestroagora/agora@latest agora-publication-audit ./public-assets --json --output audit.json
140
+ ```
141
+
142
+ The inspector covers configured hidden or control characters in text, selected HTML and SVG metadata, Office properties and review material, PDF metadata, PNG and JPEG metadata containers, and C2PA carrier hints. ExifTool adds broader read-only PDF and image metadata coverage when it is already installed. `c2patool` verification is opt-in through `--verify-c2pa`, with remote-manifest fetching disabled by supplied settings.
143
+
144
+ Source files are read only and compared by SHA-256 before and after inspection. Sensitive values and absolute paths are redacted by default. Missing or partial coverage is reported as `UNKNOWN`.
145
+
146
+ This is publication hygiene, not a watermark remover or authorship detector. A result cannot prove that content is AI-generated, human-written, anonymous, clean, or safe. Claude's documented model-level text marking is not equivalent to unusual Unicode or ordinary file metadata.
147
+
148
+ Model-level text watermarks are statistical generation signals, not hidden characters or metadata fields. Without the matching provider verifier or detector configuration and enough eligible text, Agora reports that question as uninspected instead of guessing from style, Unicode, or generic detector scores.
149
+
125
150
  ## Routing model
126
151
 
127
152
  Agora chooses a primary mode first, then the publication surface, then any domain or asset modifiers. `VOICE` enters afterward and preserves your required language and content choices.
@@ -295,11 +320,11 @@ Read [User Responsibility and Disclaimer](DISCLAIMER.md) and [Privacy Notice](PR
295
320
 
296
321
  ## Written GEO/AEO boundaries
297
322
 
298
- For written assets, Agora answers the reader's question early when the format calls for it, names entities and scope, keeps supporting details and qualifications beside claims, exposes real provenance, and builds useful passages that remain accurate when quoted alone.
323
+ For indexable public assets, Agora answers the reader's question early when the format calls for it, names entities and scope, keeps supporting details and qualifications beside claims, exposes supplied provenance, and builds useful passages that remain accurate when quoted alone.
299
324
 
300
325
  For indexable public pages, it can flag relevant crawlability, canonical, sitemap, metadata, structured-data, accessibility, and delivery checks. These practices may improve eligibility and citability. They cannot promise retrieval, selection, quotation, citation, ranking, recommendation, referral, conversion, or revenue.
301
326
 
302
- GEO/AEO applies to coherent page passages, not every sentence. It cannot force article-style density into a hero, case-study opening, spoken script, or short CTA.
327
+ GEO/AEO applies to coherent passages on indexable public pages, not every sentence. It does not automatically apply to private, non-indexable, or spoken work, and it cannot force article-style density into a hero, case-study opening, or short CTA.
303
328
 
304
329
  ## Package architecture
305
330
 
@@ -314,11 +339,15 @@ skills/agora/
314
339
  |-- SKILL.md
315
340
  |-- agents/
316
341
  | `-- openai.yaml
342
+ |-- scripts/
343
+ | `-- publication-audit.mjs
317
344
  `-- references/
318
345
  |-- agora-case-studies.md
346
+ |-- agora-conversion.md
319
347
  |-- agora-craft.md
320
348
  |-- agora-invest.md
321
349
  |-- agora-marketing.md
350
+ |-- agora-publication.md
322
351
  |-- agora-science.md
323
352
  `-- agora-voice.md
324
353
  ```
@@ -329,8 +358,11 @@ skills/agora/
329
358
  - `agora-craft.md` adds headlines, heroes, awareness and sophistication, emotion, and prose rhythm.
330
359
  - `agora-science.md` adds empirical and technical explanation plus optional scientific claim review.
331
360
  - `agora-case-studies.md` adds case structure, results, and optional attribution, permission, and confidentiality review.
361
+ - `agora-conversion.md` adds bounded conversion priors, outcome matching, self-serve and enterprise route design, pricing decision contracts, decision-adjacent proof, contradiction handling, and experiment interpretation for funnel surfaces.
332
362
  - `agora-invest.md` adds fundraising, diligence, allocation, and optional claim-review procedures.
363
+ - `agora-publication.md` adds explicit read-only publication privacy and provenance review for local artifacts.
333
364
  - `agora-voice.md` adds measured voice profiles and user-controlled profile use.
365
+ - `publication-audit.mjs` produces a deterministic, source-preserving inspection report without a cleaning operation.
334
366
 
335
367
  ## Public-package hygiene
336
368
 
@@ -338,25 +370,34 @@ Research informed Agora, but research custody is separate from distribution.
338
370
 
339
371
  The public repository and npm package must not contain raw or corrected transcripts, caption files, supplied PDFs or office documents, audio, video, private source identities, model-output scratch, research working files, local paths, or assigned secrets.
340
372
 
341
- `npm run check` always runs a release-hygiene scan after validation, deterministic tests, and the exact package allowlist. `npm pack` and `npm publish` run the same complete release gate through `prepack` and `prepublishOnly`.
373
+ `npm run check` runs validation, deterministic tests, the exact package allowlist, and release hygiene. `npm run release:check` is the proportional mandatory release gate and runs those same checks. `npm pack` and `npm publish` invoke it through `prepack` and `prepublishOnly`.
374
+
375
+ Behavioral evaluation is optional research, not a pack or publish blocker. `npm run eval:release` preserves the version-specific v1.7 evidence audit and must be run from a matching v1.7 checkout. Existing evaluation artifacts remain frozen for reproducibility; new blind or confirmatory generations are not required for later releases.
376
+
377
+ The versioned directories under `evals/blind/` are public pairwise-release artifacts, not permanently secret holdouts. `v1.2.0`, `v1.4.0`, `v1.5.0`, and `v1.7.0` are frozen by exact tree hashes in `evals/releases/locks.json`; validation fails on additions, deletions, or edits.
378
+
379
+ `evals/prospective/conversion-context-v1.0.0/` remains the development source for conversion-context cases. Earlier fixture sets are preserved under `evals/regression/` for regression analysis and historical reproducibility. `evals/blind/v1.7.0/` contains 25 independently authored conversion scenarios with versioned judging and reduction tooling.
342
380
 
343
- The versioned `evals/blind/v1.5.0/` corpus is retained as a historical release artifact. Its 86 prompt and manifest pairs record the v1.5.0 contract and do not govern the current user-authority behavior. Current deterministic tests verify that claim, evidence, permission, disclosure, confidentiality, diligence, and compliance review remain opt-in.
381
+ Deterministic tests verify instruction structure, routing contracts, static invariants, and evaluation-record shape. Versioned blind-evaluation tooling remains available for repeatable development analysis without turning model preference into a universal conversion claim.
344
382
 
345
383
  ## Verify
346
384
 
347
385
  ```sh
348
386
  npm run check
349
387
  npm run release:check
388
+ node scripts/eval-locks.mjs
350
389
  npm pack --dry-run --json
351
390
  npx -y @maestroagora/agora --dry-run
352
391
  ```
353
392
 
354
- The release gate checks skill structure, routing contracts, user-authority boundaries, modifiers, typography, metadata, reference links, full-tree installer parity, exact npm contents, blind-corpus integrity, and public-tree hygiene.
393
+ The mandatory release gate checks skill structure, routing contracts, user-authority boundaries, modifiers, typography, metadata, reference links, full-tree installer parity, exact npm contents, frozen evaluation-tree locks, public-tree hygiene, and deterministic tests. It does not require model generation or blind adjudication.
355
394
 
356
395
  ## Change record
357
396
 
358
397
  | Version | What changed |
359
398
  |---|---|
399
+ | 1.8.0 | Adds opt-in publication privacy and provenance review plus a packaged read-only audit CLI. Reports configured hidden Unicode, document and image metadata, Office review material, and C2PA carrier or validation signals without changing source files. Redacts sensitive values and paths by default, preserves unknown coverage, and makes no watermark-removal or authorship claim. |
400
+ | 1.7.0 | Adds a progressively loaded conversion-context reference with bounded conversion priors, downstream outcome matching, self-serve and enterprise route design, pricing decision contracts, proof placement, and contradiction handling. Tightens closed-world fact preservation and limits written GEO/AEO requirements to indexable public work. |
360
401
  | 1.6.0 | Expands user control across every writing mode. User-selected claims, fiction, urgency, attribution, profile use, and publication choices now control the draft. Claim, evidence, permission, disclosure, confidentiality, diligence, and compliance review are opt-in. Adds a user-responsibility disclaimer and an accurate privacy notice. |
361
402
  | 1.5.0 | Hardens `INVEST` across fundraising, diligence, and capital allocation. Adds an investment claim ledger, metric separations, asset-specific procedures, decision-led questions, objection handling, defensibility analysis, truthful urgency and commitment language, modifier composition, and current-verification boundaries. Separates real projects from fictional mock and concept-portfolio routes, and permits clearly disclosed invention for mock and hypothetical articles. Adds a customer-language boundary that keeps internal checking terms out of ordinary public copy while preserving them where scientific, methodological, audit, legal, compliance, diligence, or technical work needs them. Expands the blind corpus from 60 to 86 cases. Adds a mandatory public-tree and package hygiene gate that blocks research, transcripts, supplied private documents, raw model outputs, local paths, secrets, unexpected binaries, and private source identities. |
362
403
  | 1.4.0 | Adds stronger hero and short-form sales composition plus the composable `SCIENCE` and `CASE_STUDY` capabilities. Heroes now separate truth gates from persuasive optimization and treat the complete first-screen composition as one argument. Scientific and technical work preserves claim class, causality, statistics, uncertainty, analogy limits, and source limits. Case studies add result classes, causality, permissions, confidentiality, role attribution, quote, typicality, and visual-support gates. The blind corpus contains 60 cases. |
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@maestroagora/agora",
3
- "version": "1.6.0",
4
- "description": "Install Maestro: Agora for persuasive writing, scientific and technical explanation, case studies, fundraising, and investment analysis.",
3
+ "version": "1.8.0",
4
+ "description": "Install Maestro: Agora for persuasive writing, technical explanation, case studies, investment communication, and publication artifact review.",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "agora": "scripts/install.mjs",
8
+ "agora-publication-audit": "skills/agora/scripts/publication-audit.mjs",
8
9
  "agora-voice": "scripts/voice-measure.mjs"
9
10
  },
10
11
  "files": [
@@ -30,8 +31,9 @@
30
31
  "pack:check": "node scripts/pack-check.mjs",
31
32
  "prepack": "npm run release:check",
32
33
  "prepublishOnly": "npm run release:check",
34
+ "eval:release": "node scripts/release-evidence-check.mjs",
33
35
  "release:check": "npm run check",
34
- "test": "node --test tests/behavior-contract.test.mjs tests/hero-contract.test.mjs tests/science-contract.test.mjs tests/case-study-contract.test.mjs tests/invest-contract.test.mjs tests/blind-summary.test.mjs tests/release-hygiene.test.mjs tests/install.test.mjs tests/voice-measure.test.mjs",
36
+ "test": "node --test tests/behavior-contract.test.mjs tests/hero-contract.test.mjs tests/conversion-context-contract.test.mjs tests/science-contract.test.mjs tests/case-study-contract.test.mjs tests/invest-contract.test.mjs tests/publication-audit.test.mjs tests/blind-summary.test.mjs tests/blind-judge-prompt.test.mjs tests/blind-judge-materialize.test.mjs tests/blind-judgment-ingest.test.mjs tests/adjudication-reducer.test.mjs tests/eval-provenance-check.test.mjs tests/release-evidence-check.test.mjs tests/release-hygiene.test.mjs tests/install.test.mjs tests/voice-measure.test.mjs",
35
37
  "validate": "node scripts/validate.mjs"
36
38
  },
37
39
  "engines": {
@@ -61,6 +63,9 @@
61
63
  "fundraising",
62
64
  "investor-communications",
63
65
  "pitch-decks",
66
+ "publication-privacy",
67
+ "content-provenance",
68
+ "metadata-audit",
64
69
  "codex",
65
70
  "claude-code",
66
71
  "cursor",
@@ -248,11 +248,14 @@ async function verifySource() {
248
248
  "SKILL.md",
249
249
  "agents/openai.yaml",
250
250
  "references/agora-case-studies.md",
251
+ "references/agora-conversion.md",
251
252
  "references/agora-craft.md",
252
253
  "references/agora-invest.md",
253
254
  "references/agora-marketing.md",
255
+ "references/agora-publication.md",
254
256
  "references/agora-science.md",
255
257
  "references/agora-voice.md",
258
+ "scripts/publication-audit.mjs",
256
259
  ];
257
260
  for (const file of required) {
258
261
  if (!(await exists(join(SOURCE_DIR, file)))) {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: agora
3
- description: Write, rewrite, shorten, critique, or plan user-directed argument-first persuasion, scientific and technical explanation, case studies, and investment communication. Use when invoked as `/agora` or for marketing and sales copy; fundraising, investor outreach, pitch decks, investment memos, diligence, capital allocation, company-profile, category, or brand descriptions; CTAs and microcopy; landing, product, and comparison pages; email and direct outreach; mobile onboarding, upgrade, and paywall screens; ads and social posts; editorial or educational content, including fictional, mock, hypothetical, or concept writing; scientific communication, technical explanation, research communication, and science video scripts; real or fictional customer success, creative portfolio, and technical implementation case studies; and spoken audio/video scripts plus written derivatives such as titles, descriptions, transcripts, captions, show notes, and companion pages.
3
+ description: Write, rewrite, shorten, critique, or plan argument-first marketing, sales, investment, scientific, technical, editorial, case-study, interface, and spoken content. Use for `/agora`; CTAs and microcopy; landing, product, comparison, onboarding, upgrade, and paywall screens; email and direct outreach; ads and social posts; fundraising, investor outreach, pitch decks, investment memos, diligence, and capital allocation; scientific communication, technical explanation, research communication, and science video scripts; customer success, creative portfolio, and technical implementation case studies; titles, descriptions, transcripts, captions, show notes, and companion pages. Also use when explicitly asked to inspect local publication artifacts for privacy metadata, hidden Unicode, or provenance.
4
4
  ---
5
5
 
6
6
  # Maestro: Agora
@@ -17,14 +17,24 @@ Do not repeat U+2014 from an input. Replace it with a period, comma, colon, semi
17
17
 
18
18
  Immediately before returning, scan the complete response character by character for U+2014. Replace every occurrence, then scan again. Return only after the count is zero.
19
19
 
20
+ Do not wait for cleanup to avoid the character. Draft every break with ASCII punctuation from the start. When a title, label, or sentence invites a long dash, use a colon, period, comma, parentheses, or U+002D hyphen instead.
21
+
22
+ Use a colon or a new sentence between a list term and its explanation. Never type a long-dash separator in a heading, label, option, price, field description, or bullet.
23
+
24
+ Use straight ASCII quotation marks for generated labels and copy examples. Curly quotation marks are not required merely because text is being presented as UI copy.
25
+
26
+ Do not wrap a generated UI label in quotation marks when hierarchy, bold text, or a code span can distinguish it.
27
+
20
28
  ## Load the authority progressively
21
29
 
30
+ [references/agora-conversion.md](references/agora-conversion.md) governs conversion-context work. Load it immediately when the task writes, rewrites, plans, reviews, compares, tests, measures, or optimizes a conversion-relevant landing page, product page, pricing page, enterprise page, paywall, checkout, form, upgrade path, onboarding sequence, funnel, or experiment. Also load it when the user asks to improve conversion or interpret conversion evidence. New drafts count; do not require the user to say `conversion` or `optimize`. This load is mandatory and precedes the general marketing and optional craft reads below. Treat it as a bounded overlay inside `SELL` or `TRANSACT`, not a primary mode, modifier, or source of universal conversion laws.
31
+
22
32
  Use [references/agora-marketing.md](references/agora-marketing.md) as the canonical authority. Read only the sections the task needs:
23
33
 
24
34
  1. Always read `Core doctrine`, `User authority`, `Conflict hierarchy`, `Argument engine`, `Proof salience`, `Plain language and first-read comprehension`, and `Human voice and AI-writing-tell gate`.
25
35
  2. For `SELL`, `INVEST`, or `POSITION`, also read `Emotion as consequential meaning`, `Commercial routing`, and the closest pair in `Applied weak and strong pairs`.
26
36
  2b. For any asset containing a call to action, button, or closing invitation, also read `CTA standard`.
27
- 3. For a written asset, read `Written GEO/AEO and citability`. For indexable public work, also read `Technical publication boundaries`.
37
+ 3. For `INDEXABLE_PUBLIC` work, read `Written GEO/AEO and citability`. Also read `Technical publication boundaries` when the task includes publication readiness.
28
38
  4. For spoken work, read `Spoken delivery`. Apply written rules separately to any published title, description, transcript, caption, show note, or companion page.
29
39
  5. Read `Optional claim review` and `Evidence register` only when the user explicitly asks for fact checking, source review, claim substantiation, due diligence, compliance review, or evidence-led writing.
30
40
 
@@ -40,7 +50,7 @@ Locate the named headings and read those sections only. Do not load the entire r
40
50
 
41
51
  Do not load it for routine drafting, claim review, compliance questions, or work that the first reference already covers.
42
52
 
43
- [references/agora-voice.md](references/agora-voice.md) governs `VOICE`. Load it only when the task builds a voice profile, writes with `--voice`, inspects a profile, or checks a draft against one. Do not load it for ordinary human-voice cleanup, which the tell gate already covers.
53
+ [references/agora-voice.md](references/agora-voice.md) governs `VOICE`. Resolve explicit, default, and disabled profile state before drafting. Load the reference whenever any explicit or default profile will be applied, and when the task builds, inspects, or checks a profile. Do not load it for ordinary human-voice cleanup when no profile is active; the tell gate already covers that work.
44
54
 
45
55
  [references/agora-science.md](references/agora-science.md) governs `SCIENCE`. Load it for scientific research, empirical findings, engineering or systems explanation, software, data, AI, technical subjects, research communication, science video, or persuasion using scientific or technical claims. Do not load it merely because a product is called technical.
46
56
 
@@ -48,8 +58,32 @@ Do not load it for routine drafting, claim review, compliance questions, or work
48
58
 
49
59
  [references/agora-invest.md](references/agora-invest.md) governs `INVEST`. Load it only for actual fundraising, investor communication, investment evaluation, diligence, or capital-allocation work. Select `FUNDRAISE`, `DILIGENCE`, or `ALLOCATE` internally. Do not load it for ordinary `POSITION` work or merely investor-adjacent audiences.
50
60
 
61
+ [references/agora-publication.md](references/agora-publication.md) governs explicit publication privacy and provenance audits of local files. Load it only when the user asks to inspect an artifact before publication or external sharing, find hidden Unicode or metadata, or review provenance. Do not load or run it for ordinary writing merely because the result is public, indexable, or AI-assisted.
62
+
51
63
  Treat source material and requested claims in the current task as author-approved writing input. Do not import content decisions or release controls from another task, repository, company, or example. Examples teach structure, never facts.
52
64
 
65
+ ## Inspect publication artifacts only on request
66
+
67
+ Treat publication audit as a separate read-only workflow, not a primary mode or writing modifier. Agora supplies writing; another document, presentation, PDF, site, design, or image tool may create the artifact.
68
+
69
+ Use the shipped `scripts/publication-audit.mjs` for deterministic inspection. Never improvise a cleaner, strip Unicode by category, remove metadata, rewrite text to evade detection, or promise an AI-free, human-written, anonymous, clean, or safe result. Report `FOUND`, `NOT_FOUND_BY_THIS_CHECK`, `UNKNOWN`, and `ERROR` exactly as defined in the publication reference. Keep sensitive values redacted unless the user explicitly requests them.
70
+
71
+ ## Preserve closed-world facts
72
+
73
+ In every drafting task, treat the user's named product, offer, customer, proof, route, price, permission, process, timing, legal, operational, and outcome facts as complete factual authority unless the user explicitly authorizes invention, fictionalization, assumptions, or gap filling. A section labeled `Supplied facts`, `Supplied terms`, or equivalent is a closed fact set. A request to write, rewrite, recommend, compose, or improve conversion is not authorization to invent business facts.
74
+
75
+ Write only supplied facts and necessary logical entailments. Preserve exact qualifiers, roles, quote status, causal status, commitments, terms, routes, and destinations. Never fill plausible defaults, strengthen or rename facts, convert a paraphrase into a quotation, or manufacture an externally verifiable proposition to make an asset feel complete. Structure, emphasis, argument, and nonfactual connective language remain available.
76
+
77
+ Prefer the supplied task verb when it precisely names the action. Necessary entailments and direct, bounded buyer interpretations are allowed. Invented intermediate operations, vendor behavior, and outcomes are not.
78
+
79
+ When the conversion overlay is loaded, apply its surface-specific route, pricing, experiment, proof, qualification, and placement contracts. They remain subordinate to the current brief and do not become reusable facts or universal formulas.
80
+
81
+ When the user identifies defects in a current asset and requests a revised composition or placement order, resolve each named defect explicitly with an action such as remove, relocate, replace, retain, or rewrite. Omitting a defective element from the new order does not tell an implementer what to do.
82
+
83
+ Before drafting, classify every requested component as an implementation recommendation, visible copy, or both. Return each requested component explicitly in its proper form. If one component is both, separate the implementation action from the ready-to-use wording so neither has to impersonate the other.
84
+
85
+ Return only the requested components. Do not append edit reasoning, a self-audit, alternate routes, or an offer to do more unless the user requests analysis. Examples in this skill and its references illustrate reasoning only. Do not treat their wording, order, or fact bundles as defaults. Reproduce wording only when the current brief marks it `REQUIRED EXACT` or otherwise explicitly requires exact text.
86
+
53
87
  ## Follow user authority
54
88
 
55
89
  Agora is a writing system, not a content approval layer. Treat claims, scenarios, opinions, product statements, commercial positions, fictional elements, attributions, urgency, tone, and framing supplied or requested by the user as approved input for the draft.
@@ -149,7 +183,7 @@ For `SCIENCE + CASE_STUDY`, use scan-ready headings for implementation, validati
149
183
 
150
184
  For a high-stakes hero, controlled commercial force comes from the inspectable operational decision or human agency, not a generic capability label or escalated fear. Preserve the exact named checks, quantifiers, obligations, human-review step, and material limitations across the composition.
151
185
 
152
- For `INVEST + SCIENCE`, combine technical explanation with the user's investment thesis. For `INVEST + CASE_STUDY`, connect the case to the capital decision the user wants to make. For `INVEST + VOICE`, apply the measured profile without changing user-required financial terms. Apply GEO/AEO to public investment assets only, never automatically to private decks, meetings, or diligence.
186
+ For `INVEST + SCIENCE`, combine technical explanation with the user's investment thesis. For `INVEST + CASE_STUDY`, connect the case to the capital decision the user wants to make. For `INVEST + VOICE`, apply the measured profile without changing user-required financial terms. Apply GEO/AEO to `INDEXABLE_PUBLIC` investment assets only, never automatically to other public assets, private decks, meetings, or diligence.
153
187
 
154
188
  For a one-paragraph `INVEST` summary, give the result, interpretation, and capital use separate sentence jobs when the user wants that structure. Use strategic terms such as `wedge` when they fit the user's thesis.
155
189
 
@@ -173,6 +207,8 @@ Adapt depth to the format:
173
207
 
174
208
  For `POSITION`, make the company legible, consequential, and distinct without pitch-deck language. Convert a workflow trigger into a recognizable situation when useful. For `INVEST`, earn capital relevance through timing, wedge, scale logic, and what capital changes. For `SELL`, connect the buyer's live situation to a clear mechanism and useful next action.
175
209
 
210
+ For `SELL`, apply `Delivery-model ownership` and, when rewriting supplied copy, `Rewrite regression gate` from the canonical marketing authority. Preserve user-selected framing.
211
+
176
212
  For a very short `POSITION` asset, consider a trigger-first sentence before any category sentence: `When [condition], [subject] [mechanism].` Keep that shape when it sounds natural.
177
213
 
178
214
  In that trigger-first shape, retain the subject's primary supplied operation. A condition-led opening may reorder the workflow, but it may not reduce the company to an error state or downstream action when the core verb carries the distinction. This is a HOUSE fidelity rule; it does not require every minor workflow step.
@@ -349,33 +385,37 @@ Channel rules change depth and tone. They do not erase the argument.
349
385
  After the argument is drafted:
350
386
 
351
387
  1. Honor the user's requested claims, framing, tone, and content decisions without adding policy commentary.
352
- 2. Run claim, evidence, permission, disclosure, or compliance checks only when the user requested that review.
353
- 3. Run the first-read comprehension gate, the specialized-term gate, and the CTA gate. These run before any style, compression, or publication pass, and their result outranks all three.
354
- 4. Apply written GEO/AEO only to written deliverables, at passage level rather than sentence level.
355
- 5. Apply technical publication checks only to indexable public work.
356
- 6. Apply the human-voice and AI-writing-tell gate without deleting user-selected claims or diagnostic lists.
357
- 7. Compress repetition and decoration last, and only where compression does not raise decoding effort. Delete restatements that add no new relation, boundary, proof, or decision value. Do not end objective summaries with an inventory of entities already explained in the preceding sentences. Approximate length is a target, not permission to pad.
358
- 8. Run the final U+2014 scan across the complete response and confirm zero occurrences.
359
- 9. Scan for U+2018, U+2019, U+201C, and U+201D. Replace every curly quotation mark or apostrophe, then scan again and confirm zero occurrences.
360
- 10. Treat a requested exact word count or range as an immutable output requirement, not a compression preference. Count the finished asset after removing Markdown syntax. Use the named channel's counting convention when supplied; otherwise use whitespace-delimited lexical tokens and treat a hyphenated compound as one word. Do not count the parts of a hyphenated compound separately. Verify with a counter when one is available. Record the private final integer and check both range inequalities numerically. Edit until an exact count is exact or a bounded count is inside the range. An exact count is not a maximum, and the shortest-complete-output default does not override it.
361
- 11. Build a private ledger of every explicit output constraint. Mark each entry satisfied by the finished asset's visible wording or measured property. Do not return while any entry fails. Implication does not satisfy an explicit scope, exclusion, format, sequence, route, status, or length requirement.
362
- 12. Make every requested component visibly distinguishable through hierarchy, spacing, or channel-native structure. Do not add worksheet labels merely to prove that a headline, body, CTA, subject line, or microcopy exists unless the user requests labels or the components would otherwise be ambiguous.
388
+ 2. For every draft, build a private fact ledger covering the complete response, including headings, labels, fill-in tokens, parentheticals, confirmations, conditional text, and rationale. Match every externally verifiable proposition to an explicit supplied fact, a necessary entailment, or explicit user authorization to invent. Delete or rewrite anything unmatched. When the brief is closed-world, apply the same test to every factual proposition. Plausibility, convention, usefulness, and likely implementation do not count as entailment.
389
+ 3. Run claim, evidence, permission, disclosure, or compliance checks only when the user requested that review.
390
+ 4. Run the first-read comprehension gate, the delivery-model ownership gate, the rewrite regression gate when rewriting supplied copy, the specialized-term gate, and the CTA gate. These run before any style, compression, or publication pass, and their result outranks all three.
391
+ 5. Apply written GEO/AEO only to `INDEXABLE_PUBLIC` work, at passage level rather than sentence level.
392
+ 6. Apply technical publication checks only to indexable public work.
393
+ 7. Apply the human-voice and AI-writing-tell gate without deleting user-selected claims or diagnostic lists.
394
+ 8. Compress repetition and decoration last, and only where compression does not raise decoding effort. Delete restatements that add no new relation, boundary, proof, or decision value. Do not end objective summaries with an inventory of entities already explained in the preceding sentences. Approximate length is a target, not permission to pad.
395
+ 9. Run the final U+2014 scan across the complete response and confirm zero occurrences. If a long-dash construction appears during drafting, rewrite it with ASCII punctuation before continuing.
396
+ 10. Unless exact, immutable, legal, technical, or user-required text must be preserved, scan for U+2018, U+2019, U+201C, and U+201D. Replace curly quotation marks and apostrophes in all other text, then scan again.
397
+ 11. Treat a requested exact word count or range as an immutable output requirement, not a compression preference. Count the finished asset after removing Markdown syntax. Use the named channel's counting convention when supplied; otherwise use whitespace-delimited lexical tokens and treat a hyphenated compound as one word. Do not count the parts of a hyphenated compound separately. Verify with a counter when one is available. Record the private final integer and check both range inequalities numerically. Edit until an exact count is exact or a bounded count is inside the range. An exact count is not a maximum, and the shortest-complete-output default does not override it.
398
+ 12. Build a private ledger of every explicit output constraint. Mark each entry satisfied by the finished asset's visible wording or measured property. Do not return while any entry fails. Implication does not satisfy an explicit scope, exclusion, format, sequence, route, status, or length requirement.
399
+ 13. Make every requested component visibly distinguishable through hierarchy, spacing, or channel-native structure. The worksheet-label ban applies inside ready-to-use copy. Labels remain available outside the copy when the user requests labeled fields, when implementation recommendations need them, or when they are necessary to distinguish requested components.
400
+ 14. For conversion compositions, load and apply the surface-specific route, pricing, experiment, proof, and placement contracts in the conversion reference. Verify that visible copy follows any returned placement order, every material qualifier stays attached to the fact it qualifies, conditional steps remain conditional, unknown destinations remain unknown, and proof keeps its supplied form and causal status. Trace the primary-action spine across the flow. Do not let a prerequisite replace the activation event, make an optional post-event action primary, or invent a destination after an unknown transition. Audit every parallel option's primary decision unit for its supported route type, exclusivity, material commitment, and action or destination; an FAQ may reinforce this distinction but cannot supply it first. Audit every checklist or readiness item for a distinct fact-grounded verification, dependency, consequence, or preparation action rather than a generic instruction to review or confirm prior copy. When collection, access, or start order is absent, keep the known terms separate and do not connect them with `after`, `before`, `then`, or `until`. Scale experiment-plan detail to the requested depth without removing the minimum controls needed to interpret the named business outcome. Treat route, term, proof, and qualification completeness as the safety floor; after that floor passes, preserve the strongest supported reader job, task, or operational decision as the argument.
363
401
 
364
402
  When a sentence fails the comprehension gate, keep the underlying fact, name the concrete actor, action, object, and result, remove internal process language the reader does not need, split the overloaded sentence, restore any context the compression removed, rewrite the call to action to name its real destination, then test again. Do not repair unclear writing by adding explanatory parentheses, longer noun phrases, or a vague supporting sentence.
365
403
 
366
404
  Keep these passes invisible. Mention a blocker only when a host rule or missing requirement makes the requested result impossible.
367
405
 
368
- An active voice profile carries one narrow exception to the AI-vocabulary ban. The words on that profile's owned-vocabulary list, and only those words, are exempt, because they were measured across the corpus. The exception covers vocabulary alone: it never suppresses the stock-template bans, the significance-tail bans, the structural-tell rules, the curly-quote ban, or the U+2014 ban.
406
+ An active voice profile carries one narrow exception to the AI-vocabulary ban. The words on that profile's owned-vocabulary list, and only those words, are exempt, because they were measured across the corpus. The exception covers vocabulary alone: it never suppresses the stock-template bans, the significance-tail bans, the structural-tell rules, curly-quote normalization where it applies, or the U+2014 ban.
369
407
 
370
408
  Measured sentence length and paragraph shape describe a distribution, not a quota or a template to reproduce. Apply them without restating facts, mirroring a sample passage, or manufacturing a closing summary. A structural tell requires an identifiable prohibited construction; matching a measured length or paragraph distribution is not itself a tell.
371
409
 
372
- Do not generate curly or smart quotes in final copy. Remove prompt leakage, canned framing, generic significance tails, inflated abstractions, fake human texture, and repeated stock templates. Avoid decorative three-part rhetoric, but preserve necessary series. Never promise detector evasion. Never change user-required meaning to sound human.
410
+ Outside exact, immutable, legal, technical, or user-required text, do not generate curly or smart quotes in final copy. Remove prompt leakage, canned framing, generic significance tails, inflated abstractions, fake human texture, and repeated stock templates. Avoid decorative three-part rhetoric, but preserve necessary series. Never promise detector evasion. Never change user-required meaning to sound human.
373
411
 
374
412
  ## Return the result
375
413
 
376
414
  Return one ready-to-use result first. Do not expose internal argument planning, mode labels, chain-of-thought, rule audits, or a policy recap.
377
415
 
378
- Return finished copy, not field labels. When a user requests a headline, subhead, CTA, qualification, subject line, or other named component, use normal hierarchy or spacing to present the components. Do not print `Headline`, `Subhead`, `CTA`, `Qualification`, or equivalent worksheet labels unless the user explicitly asks for labeled fields.
416
+ Return finished copy, not a worksheet. When a user requests a headline, subhead, CTA, qualification, subject line, or other named component, use normal hierarchy or spacing inside the ready-to-use asset. Outside that asset, label implementation recommendations or requested component fields when labels prevent ambiguity. Do not insert those editorial labels into the copy itself unless the user explicitly asks for them there.
417
+
418
+ Do not append a process explanation, compliance note, self-audit, rationale, alternate route, or offer to do more unless the user asks for it. Return only the requested deliverable and any components the task requires.
379
419
 
380
420
  Default to the shortest complete output suited to the channel. Do not provide near-duplicate variants unless requested. Do not append warnings, disclaimers, or responsibility notes unless the user requests them or a host rule requires them.
381
421
 
@@ -1,4 +1,4 @@
1
1
  interface:
2
2
  display_name: "Maestro: Agora"
3
- short_description: "Persuasion, science, cases, and capital"
4
- default_prompt: "Use $agora to write clear persuasion, technical explanations, compelling case studies, and investment communication from my brief and content choices."
3
+ short_description: "Writing and publication artifact review"
4
+ default_prompt: "Use $agora to write from my brief or inspect a local publication artifact for privacy metadata and provenance."
@@ -64,6 +64,8 @@ Rule [HOUSE]: evidence status determines whether invention is allowed. Boundary:
64
64
 
65
65
  ## Build the evidence packet
66
66
 
67
+ Use this as an optional completeness review only when the user requests case review. Outside review mode, use supplied and requested case facts as approved input, do not demand missing evidence, and do not invent facts the user did not supply or request.
68
+
67
69
  Collect or mark missing before drafting:
68
70
 
69
71
  - intended audience and desired decision;
@@ -105,6 +107,8 @@ A newly launched control does not prove the prior process lacked that control or
105
107
 
106
108
  ## Classify results before writing
107
109
 
110
+ Optional case-review control. Outside review mode, preserve the result status, certainty, and presentation the user requests rather than independently reclassifying or narrowing it.
111
+
108
112
  Assign every result one class:
109
113
 
110
114
  | Result class | Meaning | Treatment |
@@ -165,6 +169,8 @@ Apply a vanity-metric gate. A metric belongs only when it establishes reach, use
165
169
 
166
170
  ## Control permission and confidentiality
167
171
 
172
+ Optional case-review control. Apply permission, confidentiality, approval-state, and publication enforcement only when the user requests case review. Outside review mode, follow the user's names, permissions, confidentiality choices, and publication instructions.
173
+
168
174
  Assign each publishable element one state:
169
175
 
170
176
  | State | Meaning | Output rule |
@@ -186,6 +192,8 @@ Anonymization must protect identity without laundering the claim. Preserve the i
186
192
 
187
193
  ## Handle quotes and testimonials
188
194
 
195
+ Optional case-review control. Check source, permission, typicality, material connection, and quote status only when the user requests case review. Outside review mode, follow the quotations, attribution, and treatment the user supplies or requests.
196
+
189
197
  Record for each quote:
190
198
 
191
199
  - speaker and role;
@@ -207,7 +215,7 @@ Never:
207
215
 
208
216
  Rule [A]: applicable consumer endorsements must reflect honest experience, avoid unsupported implied claims, and disclose material connections when needed to prevent deception. See the current [FTC Endorsement Guides](https://www.ecfr.gov/current/title-16/chapter-I/subchapter-B/part-255) and [FTC reviews and testimonials Q&A](https://www.ftc.gov/business-guidance/resources/consumer-reviews-testimonials-rule-questions-answers). Boundary: those authorities do not automatically govern every B2B, employment, creative, or internal case. Use them where applicable and use their truth principles as a conservative editorial floor elsewhere without making a legal claim.
209
217
 
210
- Agora's U+2014 and curly-quote bans still apply. If an approved exact quotation contains prohibited typography, paraphrase it and label it as paraphrase, or obtain approval for a typography-normalized version. Never silently alter it and retain an exact-quote label.
218
+ Agora's U+2014 ban still applies. Curly-quote normalization yields to exact, immutable, legal, technical, or user-required text. Never silently alter a quotation and retain an exact-quote label.
211
219
 
212
220
  ## Build a structured argument
213
221
 
@@ -299,19 +307,19 @@ Use the CTA standard in [agora-marketing.md](agora-marketing.md). `See the diffe
299
307
 
300
308
  ### `SCIENCE + CASE_STUDY`
301
309
 
302
- Load [agora-science.md](agora-science.md). Keep observed result, mechanism, interpretation, recommendation, and unknowns distinct. Scientific certainty and case attribution must agree.
310
+ Load [agora-science.md](agora-science.md). When explicit scientific or case review is active, keep observed result, mechanism, interpretation, recommendation, and unknowns distinct. Otherwise preserve the user's requested scientific and case framing.
303
311
 
304
312
  ### `SELL + CASE_STUDY`
305
313
 
306
- Write the strongest buyer-relevant argument the evidence supports. Structure and transparency do not require chronological or academic prose. Do not hide a material result boundary below a commercial opening that implies more.
314
+ Write the strongest buyer-relevant argument the user's brief requests. Structure does not require chronological or academic prose. Apply result-boundary and evidence checks only when explicit case review is active.
307
315
 
308
316
  ### `VOICE + CASE_STUDY`
309
317
 
310
- Voice may change rhythm and vocabulary. It may not change quote wording, permission, role attribution, metrics, causality, typicality, or uncertainty.
318
+ Voice may change rhythm, syntax, and measured vocabulary. It may not change the proposition, quote wording, roles, metrics, certainty, or attribution supplied in the user's current brief. Host-required text and findings from explicitly requested case review may constrain the result.
311
319
 
312
320
  ### `GEO/AEO + CASE_STUDY`
313
321
 
314
- Make project snapshot, role, method, result, period, and limitation legible in coherent passages. Expose genuine dates, sources, authorship, and evidence. Do not load the opening with every method detail or turn headings into keyword variants.
322
+ For `INDEXABLE_PUBLIC` cases, make project snapshot, role, method, result, period, and limitation legible in coherent passages. Expose supplied dates, sources, authorship, and evidence. Do not load the opening with every method detail or turn headings into keyword variants. Other written surfaces do not inherit GEO/AEO formatting.
315
323
 
316
324
  ## Maintain the case
317
325