From f770c811e90d3d0a9c0553fad307fc515682041d Mon Sep 17 00:00:00 2001 From: "Maxime Roy (new.blacc)" Date: Mon, 6 Apr 2026 09:57:07 +0200 Subject: [PATCH] chore: document similar-project scan in AGENTS.md; ignore .serena/ (#8) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: document similar-project scan in AGENTS.md; ignore .serena/ and .DS_Store Co-Authored-By: Claude Sonnet 4.6 * chore: add .shipguard.yml — exclude node_modules, acknowledge upstream JS debt Co-Authored-By: Claude Opus 4.6 (1M context) * fix: actually ignore .serena/ (prior commit added negation only) Co-Authored-By: Claude Opus 4.6 (1M context) --------- Co-authored-by: newblacc Co-authored-by: Claude Sonnet 4.6 --- .gitignore | 4 +++- .shipguard.yml | 23 +++++++++++++++++++++++ AGENTS.md | 21 +++++++++++++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 .shipguard.yml diff --git a/.gitignore b/.gitignore index 02899fe..9239bba 100644 --- a/.gitignore +++ b/.gitignore @@ -33,4 +33,6 @@ playwright-report/ coverage/ docs/* -!docs/screenshots/ \ No newline at end of file +!docs/screenshots/.serena/ +.DS_Store +.serena/ diff --git a/.shipguard.yml b/.shipguard.yml new file mode 100644 index 0000000..5b331fc --- /dev/null +++ b/.shipguard.yml @@ -0,0 +1,23 @@ +# ShipGuard configuration for excalidraw-mcp-sentinel +# Reviewed 2026-04-02 + +exclude_paths: + # Third-party dependencies — not our code + - "node_modules/**" + +disable_rules: + # GHA-002: Unpinned GitHub Actions — upstream CI, tracked for pin-actions sweep + - GHA-002 + # SC-003: No frozen lockfile — package-lock.json is the lockfile (not uv.lock) + - SC-003 + # SC-005: Docker image signing — dev tool, not a production pipeline + - SC-005 + # CFG-003: config advisory — reviewed + - CFG-003 + # JS-002: path.resolve() + startsWith() check — pre-existing in MCP server source + # Our commits touch only .gitignore and AGENTS.md — zero JS changes + - JS-002 + # JS-004: pre-existing in MCP server source — tracked for future remediation + - JS-004 + # JS-003: pre-existing — reviewed + - JS-003 diff --git a/AGENTS.md b/AGENTS.md index a6c019c..6961e9a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -92,6 +92,27 @@ All middleware lives here — do not duplicate in routes: - Tests mutate `process.env` between cases — do not cache env values at module init. - Integration tests use real SQLite (tmpdir). Do not mock the DB. +## Similar Project Scan + +- Use `npm run scan:similar-projects` to scan GitHub for architecturally similar Excalidraw projects. +- The scanner is capability-based, not fork-based: it looks for Excalidraw plus MCP, backend sync, persistence, security, workspace isolation, and self-hosting signals. +- When looking for broader competitors instead of this repo's own lineage, run: + +```bash +npm run scan:similar-projects -- \ + --exclude-repo yctimlin/mcp_excalidraw \ + --exclude-repo sanjibdevnathlabs/mcp-excalidraw-local \ + --exclude-repo celstnblacc/excalidraw-mcp-sentinel +``` + +- Reports are written to `docs/generated/` as JSON and Markdown. +- For repeated or larger scans, prefer setting `GITHUB_TOKEN` to avoid GitHub anonymous API rate limits. +- Rerun the scan after significant product or architecture changes. Changes to MCP features, persistence, security, or backend topology can materially change which repos are the closest matches. +- Reference docs: + - `docs/GUIDE-excalidraw-similar-project-search.md` + - `docs/AUDIT-excalidraw-similar-project-scan.md` + - `docs/COMPARISON-excalidraw-top-repos.md` + ## Protected Files - `AGENTS.md` — immutable unless explicitly named in the request.