authorship-notes
v0.3.0
Published
A dependency-free authorship-provenance widget for the open web.
Maintainers
Readme
Authorship Notes
Authorship Notes is an open format for explaining how humans and AI contributed to a work, and who takes responsibility for the result.
The reference implementation is a dependency-free Web Component. It makes no network requests, sets no cookies and requires no Authorship Notes account or registry.
Authorship Notes are self-declared. They are not a certification, an AI detector or proof that a declaration is true.
Project site · Build a note · Download the 0.3.0 starter bundle · Roadmap · Report an issue
Choose an installation path
npm
Install the exact release:
npm install [email protected]Import it once in the JavaScript entry point used by article pages:
import "authorship-notes";Canonical self-hosted installation
Download the readable widget from the immutable v0.3.0 release, save it in
your own site assets and serve it from your domain:
curl -L \
https://github.com/iarfhlaith/authorship-notes/releases/download/v0.3.0/authorship-notes.js \
-o public/assets/authorship-notes.js<script src="/assets/authorship-notes.js" defer></script>Self-hosting is the canonical installation because it avoids a runtime dependency on GitHub, npm or an Authorship Notes service. The starter bundle contains the widget, schema, symbol, example record and a working HTML page.
See the installation guide for plain HTML, Astro, upgrades and Content Security Policy guidance.
Add a note
Place the record beside the byline of a work:
<authorship-note placement="below">
<details>
<summary>
Authorship Note — Human-led · AI research and editorial support
</summary>
<p>
I developed the argument and wrote the final article. AI supported
research and editorial critique.
</p>
</details>
<script type="application/json">
{
"work": {
"title": "My article",
"url": "https://example.com/my-article"
},
"mode": "Human-led",
"summary": "AI research and editorial support",
"statement": "I developed the argument and wrote the final article. AI supported research and editorial critique.",
"contributions": [
{ "label": "Original idea", "value": "Human" },
{ "label": "Research", "value": "Human + AI" },
{ "label": "Writing", "value": "Human" },
{ "label": "Final responsibility", "value": "Human" }
],
"author": "Your name",
"assurance": "Self-declared",
"specVersion": "0.1"
}
</script>
</authorship-note>The compact badge opens a disclosure card on desktop and a bottom sheet on
mobile. The native <details> remains useful if JavaScript is unavailable.
Create or import a record
The browser-based builder at iarfhlaith.com/authorship-notes#builder creates a live preview, validates specification 0.1 records, imports and revises JSON, and exports an individual record or complete self-hosting bundle. Form data stays in the browser.
Authorship modes
- Human — generative AI made no material contribution.
- Human-led — the human created the thesis, structure and substantial expression; AI provided support.
- Collaborative — human and AI both materially shaped the work.
- AI-drafted — a human directed and substantively edited a draft produced largely by AI.
- AI-generated — AI produced most of the ideas, structure and text with limited human intervention.
These are descriptions, not quality grades. Use the mode selection guide and five complete examples when the boundary is unclear.
Documentation
- Installation and upgrades
- Choosing an authorship mode
- Widget configuration, events, fallback and CSP
- Widget/specification compatibility
- Project principles
- Non-goals
- Specification 0.1
- Roadmap
Repository map
authorship-notes/
├── .github/ Tests and structured issue templates
├── assets/ Brand symbol
├── dist/ Readable and minified browser distributions
├── docs/ Guides, specification, principles and roadmap
├── examples/ Plain HTML and all-mode examples
├── schema/ JSON Schema for a note record
├── src/ Dependency-free Web Component source
├── starter/ Source files for the downloadable starter ZIP
└── tests/ Schema, security and browser testsDevelopment
The published widget has no runtime dependencies. Development uses Node 18 or newer:
npm install
npx playwright install chromium firefox
npm run test:allCI adds the same suite on WebKit. Run it locally with
npm run test:browser:all when the current Playwright WebKit build supports
your operating system.
Create and inspect the npm payload:
npm pack --dry-runThe minified widget has an 18 kB size budget. The project targets current Chrome, Safari, Firefox and Edge and a WCAG 2.2 AA reader experience.
Events
The element emits:
authorship-note:openauthorship-note:close
Event details contain only the authorship mode and interaction state. The widget does not transmit record contents.
Versioning
Software releases use semantic versioning. Widget 0.3.x reads Authorship
Notes Specification 0.1 records. The two versions change independently.
Use immutable release or npm versions in production. See the compatibility guide.
License
The reference implementation is available under the MIT License.
