Skip to content

docs: rewrite README for a first-time visitor, relocate the detail into docs/ - #65

Merged
laugiov merged 2 commits into
mainfrom
claude/readme-hacker-news-rewrite-jg2oeg
Aug 19, 2026
Merged

docs: rewrite README for a first-time visitor, relocate the detail into docs/#65
laugiov merged 2 commits into
mainfrom
claude/readme-hacker-news-rewrite-jg2oeg

Conversation

@laugiov

@laugiov laugiov commented Aug 19, 2026

Copy link
Copy Markdown
Owner

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

  • README.md rewritten in this order: logo + tagline + 4 badges (CI, codecov, License, Live demo — Status, Stack, Docker, STIX, PRs Welcome and Website dropped), the screenshots GIF unchanged, the two-sentence description of the gap it fills, the Black Hat USA 2026 line, then the "Try it" section (hosted demo with its credentials, and make demo-up with 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.
  • New "Limitations" section, written from the caveats that were scattered through the old README: email-only and inbound-only, not a control, only OpenCTI verified end to end, no published metric for the TTP module, read-only review queue and manual campaign attribution, output quality depends on the model, seeded demo data, single-host deployment, operator-owned legality. Qualitative, no numbers.
  • Project Status table removed. Every row said "Complete", which reads as marketing to this audience; docs/06_roadmap.md already covers the same ground honestly and is linked instead.
  • New 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.
  • New 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.md was read first: it is a UI field guide, so the architecture did not belong there.
  • Punctuation: the README uses double hyphens (--), not em dashes, as the previous README did.

Where each removed block landed:

Removed from README Destination
Scammer TTP intelligence section, in full, with the metrics note docs/27_ttp_intelligence.md (new)
STIX evidence detail (sighting fields), ATT&CK mapping, x_scambuster_actor engagement metrics, OpenCTI bundle validation; psych profiling and fuzzy clustering docs/21_threat_actor_profiling.md
Analyst feedback loop docs/24_analyst_feedback.md (already covered; cross-linked into the threat-actor intelligence stack)
Full IOC contextual enrichment description docs/02_value_proposition.md, under Hybrid IOC Extraction
Multilingual design rationale docs/25_prompt_customization.md, new "Multilingual by design" section
Tech stack table, project structure tree, data sovereignty note, human delay simulation docs/03_high_level_architecture.md
LLM provider table, default credentials, production hardening, by-hand vs AI-agent deploy note docs/QUICKSTART.md
Documentation index table docs/README.md (new)
Project Status table already covered by docs/06_roadmap.md

Duplicated statements were reconciled into each file's existing structure rather than appended verbatim.

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Refactoring (no functional change)
  • Documentation update
  • Infrastructure / CI change

Checklist

  • make test passes — n/a, no application code changed
  • make stan passes — n/a, no PHP changed
  • make cs-fixer applied and left the worktree unchanged — n/a, no PHP changed
  • New code has tests — n/a, documentation only
  • Documentation updated if needed
  • No secrets or credentials in the code — the demo credentials, licence, demo URLs and commands are unchanged from the previous README
  • Follows DDD architecture — n/a, no Domain, Application, Infrastructure or UI code touched, no migration, no port interface

Factory gates

  • Every commit and task cites a requirement id — n/a, chore pipeline, no spec
  • Gate reports linked in the 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 commit
  • Escalation triggers listed — none fired: the diff is confined to README.md and docs/*.md, no sensitive path is touched
  • Reproduction or exploit test committed before the fix — n/a, not a bug or security PR

Verification

  • README.md: 704 words, 124 lines (was 2409 / 367).
  • Every internal link and heading anchor in the nine changed files was resolved against the filesystem; the only non-filesystem link is ../../issues, GitHub's relative issues path, carried over unchanged.
  • ../README.md#contact in docs/06_roadmap.md and docs/07_faq.md still resolves — the ## Contact heading is kept, and those two are the only links into a README anchor anywhere in the repository.
  • Every relocated block was checked to be present at its destination, and every file under docs/ appears in the new docs/README.md index.
  • The capability counts kept in the README match the code: 13 scam types (ScamTypeFixtures seeds 14 codes, of which UNKNOWN is the fallback) and 36 IOC types.
  • No emoji, no marketing adjectives, licence / credentials / demo URLs / commands / GIF and logo paths unchanged.

laugiov and others added 2 commits August 19, 2026 09:27
…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.
@laugiov
laugiov merged commit 80bfe84 into main Aug 19, 2026
23 checks passed
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants