Content QA Specialist enforces approval-ready gates #20

Closed
opened 2026-05-28 18:14:56 +01:00 by bingoss · 1 comment
Owner

What to build

Type: AFK.

Create the Content QA specialist path that evaluates Daily Content Packages against source grounding, Mestra claim boundaries, duplicate intent, commercial relevance, search intent, internal links, metadata, FAQ/schema usefulness, and CMS handoff requirements.

Acceptance criteria

  • Every article or refresh package receives a content QA status before it can be marked approval-ready.
  • QA can mark approval_ready, needs_revision, blocked_claim_risk, blocked_duplicate_intent, or blocked_missing_evidence with safe diagnostics.
  • The Review Board shows QA status and supporting artifact links without embedding long artifact bodies.
  • Tests are written first for approval-ready, duplicate intent, claim risk, and missing evidence paths.

Blocked by

## What to build Type: AFK. Create the Content QA specialist path that evaluates Daily Content Packages against source grounding, Mestra claim boundaries, duplicate intent, commercial relevance, search intent, internal links, metadata, FAQ/schema usefulness, and CMS handoff requirements. ## Acceptance criteria - [ ] Every article or refresh package receives a content QA status before it can be marked approval-ready. - [ ] QA can mark approval_ready, needs_revision, blocked_claim_risk, blocked_duplicate_intent, or blocked_missing_evidence with safe diagnostics. - [ ] The Review Board shows QA status and supporting artifact links without embedding long artifact bodies. - [ ] Tests are written first for approval-ready, duplicate intent, claim risk, and missing evidence paths. ## Blocked by - #19
Author
Owner

Issue #20 completion audit

Implemented and verified:

  • Content QA now emits all supported product statuses: approval_ready, needs_revision, blocked_claim_risk, blocked_duplicate_intent, and blocked_missing_evidence.
  • Article/refresh CMS approval processing now blocks unless content_qa_status is approval_ready, records safe review_action_blocked diagnostics, and does not create approval run requests.
  • Review Board cards expose content_qa_status and supporting artifact links (main, draft, qa_report, source_ledger) without embedding queue bodies, task payloads, or long artifact bodies.
  • Schema tests explicitly cover article and refresh packages requiring QA status before reviewable artifact creation.

Acceptance criteria audit:

  • Every article or refresh package receives content QA before approval-ready: met by schema QA constraints and the approval gate for article_refresh/new_article CMS approval.
  • QA can mark approval_ready, needs_revision, blocked_claim_risk, blocked_duplicate_intent, and blocked_missing_evidence with safe diagnostics: met in qa_asset tests and persisted status mapping.
  • Review Board shows QA status and supporting artifact links without long bodies: met by dashboard test assertions and raw-body exclusion.
  • Tests first for approval-ready, duplicate intent, claim risk, and missing evidence paths: met; RED showed missing-evidence mapped to needs_revision and approval gate incorrectly completed, then GREEN.

Tests run on codex-server:

  • python3 -m unittest tests.test_growth_engine.GrowthEngineTests.test_qa_changes_status_for_duplicate_intent_and_claim_risk tests.test_postgres_schema.SliceFourReviewBoardAndArtifactLinksTests.test_article_or_refresh_approval_blocks_when_content_qa_is_not_ready tests.test_postgres_schema.SliceFourReviewBoardAndArtifactLinksTests.test_content_packages_require_qa_status tests.test_postgres_dashboard.PostgresDashboardOverviewTests.test_review_board_returns_reviewable_artifacts_with_links_without_long_bodies
  • python3 -m unittest tests.test_growth_engine tests.test_postgres_schema tests.test_postgres_dashboard tests.test_postgres_schema.SliceFourReviewBoardAndArtifactLinksTests tests.test_weekly_telegram_summary tests.test_growth_orchestrator_worker tests.test_content_planner_contract
  • git diff --check
  • Result: targeted tests passed; 230-test broad regression passed; diff check clean.
Issue #20 completion audit Implemented and verified: - Content QA now emits all supported product statuses: approval_ready, needs_revision, blocked_claim_risk, blocked_duplicate_intent, and blocked_missing_evidence. - Article/refresh CMS approval processing now blocks unless content_qa_status is approval_ready, records safe review_action_blocked diagnostics, and does not create approval run requests. - Review Board cards expose content_qa_status and supporting artifact links (main, draft, qa_report, source_ledger) without embedding queue bodies, task payloads, or long artifact bodies. - Schema tests explicitly cover article and refresh packages requiring QA status before reviewable artifact creation. Acceptance criteria audit: - Every article or refresh package receives content QA before approval-ready: met by schema QA constraints and the approval gate for article_refresh/new_article CMS approval. - QA can mark approval_ready, needs_revision, blocked_claim_risk, blocked_duplicate_intent, and blocked_missing_evidence with safe diagnostics: met in qa_asset tests and persisted status mapping. - Review Board shows QA status and supporting artifact links without long bodies: met by dashboard test assertions and raw-body exclusion. - Tests first for approval-ready, duplicate intent, claim risk, and missing evidence paths: met; RED showed missing-evidence mapped to needs_revision and approval gate incorrectly completed, then GREEN. Tests run on codex-server: - python3 -m unittest tests.test_growth_engine.GrowthEngineTests.test_qa_changes_status_for_duplicate_intent_and_claim_risk tests.test_postgres_schema.SliceFourReviewBoardAndArtifactLinksTests.test_article_or_refresh_approval_blocks_when_content_qa_is_not_ready tests.test_postgres_schema.SliceFourReviewBoardAndArtifactLinksTests.test_content_packages_require_qa_status tests.test_postgres_dashboard.PostgresDashboardOverviewTests.test_review_board_returns_reviewable_artifacts_with_links_without_long_bodies - python3 -m unittest tests.test_growth_engine tests.test_postgres_schema tests.test_postgres_dashboard tests.test_postgres_schema.SliceFourReviewBoardAndArtifactLinksTests tests.test_weekly_telegram_summary tests.test_growth_orchestrator_worker tests.test_content_planner_contract - git diff --check - Result: targeted tests passed; 230-test broad regression passed; diff check clean.
Commenting is not possible because the repository is archived.
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
bingoss/owned-growth-engine#20
No description provided.