docs: rewrite README for a first-time visitor, relocate the detail into docs/ - #65
Merged
Merged
Conversation
…to docs/ The README read as complete product documentation (2409 words, 367 lines). Rewrite it for a reader who gives it 30 seconds: what it does, why it is credible, how to see it running with no setup, and an honest limits section. README.md is now 699 words / 124 lines, in the order: logo + tagline + 4 badges (CI, codecov, License, Live demo), the screenshots GIF, a zero-friction try block as the first call to action, a two-sentence description, the Black Hat USA 2026 line, how it works, what it produces, quick start, limitations, security and ethics, license / contributing / contact. No production, performance or effectiveness figures anywhere in the file. Nothing is deleted. Every removed block moved into the docs/ tree: - TTP module architecture (extraction, APIs, UI, export, tooling, feature flag, no-published-metric note) -> new docs/27_ttp_intelligence.md, kept separate from docs/26 which is a UI field guide - STIX evidence, ATT&CK mapping, x_scambuster_actor engagement metrics and OpenCTI bundle validation -> docs/21_threat_actor_profiling.md - analyst feedback loop -> docs/24_analyst_feedback.md (cross-linked into the threat-actor intelligence stack) - full IOC contextual enrichment -> docs/02_value_proposition.md - multilingual design rationale -> docs/25_prompt_customization.md - tech stack, repository layout, data sovereignty note, reply cadence (human delay simulation) -> docs/03_high_level_architecture.md - LLM provider table, default credentials, production hardening, the by-hand vs AI-agent deploy note -> docs/QUICKSTART.md - documentation index -> new docs/README.md, the documentation entry point The Project Status table is dropped: every row said Complete, and the same ground is already covered honestly by docs/06_roadmap.md, which the README links instead. Documentation only. No Domain, Application, Infrastructure or UI code, no migration, no port interface. Every internal link in the rewritten README and in each edited file was verified to resolve. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EuSwzUFygQdWDrMx3pgyXs
Move the two-sentence description and the Black Hat line above the "Try it" heading, so a first-time reader learns what the project is before hitting the demo credentials. Replace the five em dashes with double hyphens, as the previous README used.
16 tasks
laugiov
added a commit
that referenced
this pull request
Aug 19, 2026
#65 gave the README double hyphens as sentence punctuation. Align the rest of the Markdown tree with that convention: 573 em dashes (U+2014) inventoried across 45 files, 539 substituted, 3 reformulated, 31 kept. Kept, because they are not sentence punctuation: 15 table placeholder cells where a bare em dash is the whole cell and means "not applicable" (RACI matrix, OIDC defaults, SIEM endpoint, NullSiemExporter, PUBLIC data class, PostgreSQL role); 15 occurrences inside fenced code blocks (shell comments, doctor output, the SIEM exporter ASCII tree, a JSON sample, a PR-body example); and 1 inside an inline code span in the post-mortem template. Reformulated rather than substituted where a double hyphen would have sat next to a CLI flag written with the same characters: a comma and a semicolon in AI_DEPLOYMENT.md, a colon in QUICKSTART.md. Punctuation only. Every file except those two was verified identical to its previous version once both punctuation forms are normalized to a single token, so no sentence changed meaning, no wording was improved and nothing was restructured. En dashes and existing hyphens were left alone; only U+2014 was in scope. README.md is unchanged. Every internal link and heading anchor in the 44 edited files still resolves. Documentation only. No application code, no configuration, no migration; no non-Markdown file appears in the diff.
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.
Pipeline: chore
Spec: n/a — documentation only
Gates: G1 (content review) approved by the maintainer before the commit; no architecture review — no layer is touched
Deploy-impact: none — README.md and docs/.md only; no infra/docker/**, no docker-compose.yml, no .env.dist
Summary
The README read as complete product documentation: 2409 words, 367 lines. The reader arriving from Hacker News gives it about 30 seconds and needs four things — what it does, why it is credible, how to see it running with zero setup, and an honest statement of limits. Everything else belonged in
docs/.README.md is now 704 words / 124 lines. Nothing is deleted: every removed block was integrated into the file in
docs/that already covers its topic, or into one of two new files.No production, performance or effectiveness figures appear anywhere in the new README — no conversation counts, no IOC counts, no observation window, no precision or accuracy numbers, no cost figures. Figures found in
docs/while working were left where they were.Changes
make demo-upwith the explicit "no API key, no account, no mailbox"), how it works, what it produces, quick start, limitations, security and ethics, license / contributing / contact. The reader learns what the project is before reaching the demo credentials.docs/06_roadmap.mdalready covers the same ground honestly and is linked instead.docs/README.md— the documentation entry point, carrying the index table that used to sit in the README, grouped (start here / concepts / intelligence / integration / operations) and extended with the guides the old table omitted.docs/27_ttp_intelligence.md— the TTP module's architectural description, including the note that no published metric applies to it.docs/26_reading_the_ttp_screens.mdwas read first: it is a UI field guide, so the architecture did not belong there.--), not em dashes, as the previous README did.Where each removed block landed:
docs/27_ttp_intelligence.md(new)x_scambuster_actorengagement metrics, OpenCTI bundle validation; psych profiling and fuzzy clusteringdocs/21_threat_actor_profiling.mddocs/24_analyst_feedback.md(already covered; cross-linked into the threat-actor intelligence stack)docs/02_value_proposition.md, under Hybrid IOC Extractiondocs/25_prompt_customization.md, new "Multilingual by design" sectiondocs/03_high_level_architecture.mddocs/QUICKSTART.mddocs/README.md(new)docs/06_roadmap.mdDuplicated statements were reconciled into each file's existing structure rather than appended verbatim.
Type of Change
Checklist
make testpasses — n/a, no application code changedmake stanpasses — n/a, no PHP changedmake cs-fixerapplied and left the worktree unchanged — n/a, no PHP changedFactory gates
Gates:line above — G1 was a content review taken directly with the maintainer, who approved the full README text and the relocation map before the commitREADME.mdanddocs/*.md, no sensitive path is touchedVerification
../../issues, GitHub's relative issues path, carried over unchanged.../README.md#contactindocs/06_roadmap.mdanddocs/07_faq.mdstill resolves — the## Contactheading is kept, and those two are the only links into a README anchor anywhere in the repository.docs/appears in the newdocs/README.mdindex.ScamTypeFixturesseeds 14 codes, of whichUNKNOWNis the fallback) and 36 IOC types.