Release 1.0.0: freeze plugin API, init adoption kit, Markdown reports - #7
Merged
Conversation
…eports. 1.0 is the first-run path (CI + Cursor MCP in one command) and a frozen schemaVersion, not more rules — so a scanner with no downloads can actually be installed. Co-authored-by: Cursor <cursoragent@cursor.com>
Untrusted route/why/snippet text from the scanned tree must not open a heading or close a fence when someone pastes --format md into GitHub. Co-authored-by: Cursor <cursoragent@cursor.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR prepares the 1.0.0 release by freezing the plugin API at schemaVersion: 1, adding an adoption “init” path for new repos (agent rules + GitHub Action workflow + Cursor MCP), and shipping a Markdown reporter (--format md) intended for PR comments (with injection hardening).
Changes:
- Add
owlwarden init(adoption kit generation/merge behavior,--force, and tests) and update CLI help/args accordingly. - Ship
mdas a first-class report format across Rust reporters, N-API render surface, CLI format plumbing, and snapshots/tests. - Update docs/site/changelog/versions to reflect 1.0.0 and the new stable surfaces (Diátaxis docs, RFC/ADR updates, Action defaults).
Reviewed changes
Copilot reviewed 56 out of 57 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| site/styles.css | Add “recipes” layout styles for the new start section. |
| site/README.md | Update site README feature blurb to 1.0.0 surface. |
| site/llms.txt | Refresh LLM index facts/links for 1.0.0, init, and md format. |
| site/index.html | Update versioned assets and add new “Start” section + copy updates. |
| scripts/check-site.mjs | Assert new site content includes init and v1.0.0. |
| scripts/check-package-readme.mjs | Update npm README contract checks for init and md format. |
| RULES.md | Bump rule catalogue header version to 1.0.0. |
| ROADMAP.md | Mark v1.0 slice as delivered and clarify what remains later. |
| REPORTERS.md | Mark Markdown reporter as shipped and update reporter docs accordingly. |
| README.md | Update top-level README to 1.0.0 surface and include init/md usage. |
| packages/sdk/test/plugin.test.ts | Update plugin schema test wording for API v1. |
| packages/sdk/src/plugin.ts | Update plugin capability validation messaging for API v1. |
| packages/sdk/package.json | Bump SDK package version to 1.0.0. |
| packages/config/src/schema.ts | Add md to config format enum. |
| packages/config/package.json | Bump config package version to 1.0.0. |
| packages/cli/test/run.test.ts | Add tests for markdown output and init adoption-kit behavior. |
| packages/cli/test/args.test.ts | Update arg parsing tests for md + new init semantics. |
| packages/cli/src/run.ts | Wire expanded init options through CLI runner. |
| packages/cli/src/help.ts | Update help text for init flags and --format md. |
| packages/cli/src/commands/scan.ts | Add .md extension mapping for machine output naming. |
| packages/cli/src/commands/plugin-scaffold.ts | Update scaffolded rule description for API v1 messaging. |
| packages/cli/src/commands/init.ts | Implement init adoption kit writing/merging and workflow rendering. |
| packages/cli/src/args.ts | Extend CLI types/options: init flags + add md report format. |
| packages/cli/README.md | Update CLI README to 1.0.0 and document init/md usage. |
| packages/cli/package.json | Bump CLI package version to 1.0.0 and expand keywords. |
| mcp/server.json | Add MCP registry descriptor for Owlwarden. |
| docs/tutorials/first-scan.md | Add first-scan tutorial (Diátaxis tutorial). |
| docs/tutorials/agents.md | Add agents tutorial for Cursor + stdio MCP usage. |
| docs/rfc/README.md | Add RFC process doc for breaking plugin-API changes post-1.0. |
| docs/reference/plugin-api.md | Add frozen Plugin API v1 reference. |
| docs/reference/cli.md | Add CLI reference doc including init flags and md format. |
| docs/README.md | Update docs index to point at new tutorials/reference/upgrade docs. |
| docs/how-to/upgrade.md | Add upgrade guide for moving to 1.0. |
| docs/how-to/performance.md | Add 1.0 measurement note and clarify perf-gate status. |
| docs/how-to/discover.md | Add maintainer discoverability checklist and submission targets. |
| docs/how-to/ci.md | Update CI guide example to action@v1.0.0. |
| docs/explanation/compared.md | Add explanation doc comparing Owlwarden to other scanners. |
| docs/explanation/agent-integration.md | Update agent integration status and init adoption-kit docs. |
| docs/adr/README.md | Add ADR 0024 entry to the index. |
| docs/adr/0024-plugin-api-v1.md | Add ADR freezing plugin API v1 at 1.0. |
| docs/adr/0022-stackable-formats.md | Extend stackable formats ADR to include md. |
| crates/reporters/tests/snapshots/snapshots__md_next.snap | Add golden snapshot for md reporter output. |
| crates/reporters/tests/snapshots.rs | Add md reporter tests and snapshot assertion. |
| crates/reporters/src/md.rs | Implement Markdown reporter with injection hardening + unit tests. |
| crates/reporters/src/lib.rs | Export MdReporter and register md in format list/factory. |
| crates/reporters/Cargo.toml | Update reporters crate description to include Markdown. |
| crates/napi/src/lib.rs | Add md support to N-API render surface. |
| crates/napi/package.json | Bump native package version to 1.0.0. |
| crates/cli-native/src/main.rs | Add md format support to standalone Rust CLI output. |
| crates/cli-native/src/cli.rs | Update native CLI help text to include md format. |
| CONTRIBUTING.md | Update crate map to include sarif/junit/md reporters. |
| CHANGELOG.md | Add 1.0.0 release notes and update compare links. |
| Cargo.toml | Bump workspace and internal crate versions to 1.0.0. |
| Cargo.lock | Update lock entries for 1.0.0 workspace versioning. |
| ARCHITECTURE.md | Update command table for init and clarify perf-gate claims. |
| action/README.md | Update Action usage example to v1.0.0. |
| action/action.yml | Update Action defaults to 1.0.0 and allow md output format. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
schemaVersion: 1(ADR 0024 + RFC path), Diátaxis docs (tutorials, CLI/plugin reference, upgrade guide, comparison), and a first-run path that does not require a scavenger hunt.owlwarden initwrites the adoption kit (agent-rules, GitHub Action workflow, Cursor MCP).--format mdis for PR comments; untrusted route/why/snippet text cannot open a heading or break a code fence.cargo-denyalready gate releases.Test plan
pnpm check(fmt, clippy-D warnings, typecheck, eslint, rust+ts tests, site/npm README contracts)why/route, snippet```fence breakout)fixtures/vulnerable/next-api(~9 ms / 7 files — not the 1k-file budget)v1.0.0so the release workflow publishes npm; Action default is1.0.0docs/how-to/discover.md(MCP registry, cursor.directory) after the tagMade with Cursor