Skip to content

feat: quality-gate finished articles before publishing#1

Merged
mnemonik-dev merged 1 commit into
mainfrom
claude/awesome-mccarthy-HOipN
Jun 6, 2026
Merged

feat: quality-gate finished articles before publishing#1
mnemonik-dev merged 1 commit into
mainfrom
claude/awesome-mccarthy-HOipN

Conversation

@mnemonik-dev

Copy link
Copy Markdown
Owner

Add a "write -> gate -> publish" path so blogger publishes finished articles (e.g. from claude-blog) only after they clear a quality bar, instead of posting raw briefs unconditionally.

  • quality.py: score an article via claude-blog's analyze_blog.py and gate on score.total >= min_score. Fails CLOSED (missing path, non-zero exit, unparseable output, or low score all block publishing).
  • content/ingest.py: parse a finished Markdown article (YAML front-matter
    • body) into a SourcePost; resolves title/summary/tags/link and enforces banned-phrase guardrails.
  • agent.run_campaign_from_article: ingest -> gate -> render -> publish; CampaignResult gains quality/blocked so a blocked run publishes nothing.
  • cli: post --from-file (with --min-score) and a standalone score command.
  • config: MNEMONIK_MIN_SCORE (default 80) and MNEMONIK_CLAUDE_BLOG_PATH.
  • docs: .env.example + AGENTS.md document the gated flow.
  • tests: 12 new tests covering ingest parsing and the gate (pass, block, and every fail-closed branch).

Add a "write -> gate -> publish" path so blogger publishes finished
articles (e.g. from claude-blog) only after they clear a quality bar,
instead of posting raw briefs unconditionally.

- quality.py: score an article via claude-blog's analyze_blog.py and gate
  on score.total >= min_score. Fails CLOSED (missing path, non-zero exit,
  unparseable output, or low score all block publishing).
- content/ingest.py: parse a finished Markdown article (YAML front-matter
  + body) into a SourcePost; resolves title/summary/tags/link and enforces
  banned-phrase guardrails.
- agent.run_campaign_from_article: ingest -> gate -> render -> publish;
  CampaignResult gains quality/blocked so a blocked run publishes nothing.
- cli: `post --from-file` (with --min-score) and a standalone `score`
  command.
- config: MNEMONIK_MIN_SCORE (default 80) and MNEMONIK_CLAUDE_BLOG_PATH.
- docs: .env.example + AGENTS.md document the gated flow.
- tests: 12 new tests covering ingest parsing and the gate (pass, block,
  and every fail-closed branch).
@mnemonik-dev mnemonik-dev merged commit ffef7e2 into main Jun 6, 2026
2 checks passed
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