-
-
Notifications
You must be signed in to change notification settings - Fork 2
docs(analysis): add reference/meta methodologies + operational supplementary templates, sync prompts #1959
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docs(analysis): add reference/meta methodologies + operational supplementary templates, sync prompts #1959
Changes from 12 commits
2eb3a51
252c5b8
dc8b72d
24466a3
bbf6629
f63fa45
b66a9b2
1c3e58a
41eec41
a7c10d1
68fd819
2d42fca
808b1b7
57c958a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -6,6 +6,7 @@ This is the **only** gate separating analysis from article generation. If it fai | |
|
|
||
| - `$ANALYSIS_DIR = analysis/daily/$ARTICLE_DATE/$SUBFOLDER` | ||
| - 23 required artifacts (Families A + B + C + D from `04-analysis-pipeline.md`) + per-document Family E. | ||
| - Authoritative reference — [`analysis/methodologies/artifact-catalog.md`](../../analysis/methodologies/artifact-catalog.md) (single source of truth for every artifact), [`analysis/methodologies/per-artifact-methodologies.md`](../../analysis/methodologies/per-artifact-methodologies.md) (per-artifact Inputs / Analytic-moves / Evidence-rules / Anti-patterns), [`analysis/methodologies/reference-quality-thresholds.json`](../../analysis/methodologies/reference-quality-thresholds.json) (per-article-type line floors + tradecraft signals). | ||
|
|
||
| ## Checks (all must pass) | ||
|
|
||
|
|
@@ -232,3 +233,46 @@ Exit code 0 = pass, non-zero = fail with per-check report. Precondition for chec | |
| ## Deduplication note | ||
|
|
||
| If today's article HTML already exists under `news/` **and** `force_generation=false`, skip article generation but still run analysis and still commit. The PR label is `analysis-only`. There is still exactly one PR call. | ||
|
|
||
| ## Supplementary checks | ||
|
|
||
| Non-blocking for `standard` / `deep` runs; **blocking for `comprehensive` / Tier-C aggregation runs**. These checks consume the 7 operational supplementary artifacts defined in [`analysis/templates/README.md §Operational Supplementary`](../../analysis/templates/README.md) and catalogued in [`analysis/methodologies/artifact-catalog.md §Operational Supplementary`](../../analysis/methodologies/artifact-catalog.md#-operational-supplementary-artifacts-7). | ||
|
|
||
| | S# | File | Blocking when | Methodology §link | | ||
| |:--:|------|---------------|-------------------| | ||
| | S1 | `analysis-index.md` | `comprehensive` | [`per-artifact-methodologies.md#analysis-index`](../../analysis/methodologies/per-artifact-methodologies.md#analysis-index) | | ||
| | S2 | `reference-analysis-quality.md` | `comprehensive` | [`per-artifact-methodologies.md#reference-analysis-quality`](../../analysis/methodologies/per-artifact-methodologies.md#reference-analysis-quality) | | ||
| | S3 | `mcp-reliability-audit.md` | `comprehensive`, or any run with ≥ 1 MCP endpoint failure | [`per-artifact-methodologies.md#mcp-reliability-audit`](../../analysis/methodologies/per-artifact-methodologies.md#mcp-reliability-audit) | | ||
| | S4 | `workflow-audit.md` | `comprehensive` | [`per-artifact-methodologies.md#workflow-audit`](../../analysis/methodologies/per-artifact-methodologies.md#workflow-audit) | | ||
| | S5 | `cross-run-diff.md` | any article type with ≥ 2 production runs | [`per-artifact-methodologies.md#cross-run-diff`](../../analysis/methodologies/per-artifact-methodologies.md#cross-run-diff) | | ||
| | S6 | `cross-session-intelligence.md` | `weekly-review`, `monthly-review`, quarterly aggregation | [`per-artifact-methodologies.md#cross-session-intelligence`](../../analysis/methodologies/per-artifact-methodologies.md#cross-session-intelligence) | | ||
| | S7 | `session-baseline.md` | `weekly-review`, `monthly-review`, any aggregation workflow | [`per-artifact-methodologies.md#session-baseline`](../../analysis/methodologies/per-artifact-methodologies.md#session-baseline) | | ||
|
|
||
| Inline bash probe — append to the main block after `FAIL=0` bookkeeping completes. The gate blocks on **aggregation article types** (`weekly-review`, `monthly-review`), on any run whose **tier** is `comprehensive` (the Tier-C run mode), and on `cross-run-diff.md` when the workflow has **≥ 2 production runs** of the same article type. `ARTICLE_TYPE` encodes the workflow family; `ANALYSIS_TIER` (when set) encodes the depth tier (`standard` | `deep` | `comprehensive`); `ANALYSIS_RUN_COUNT` (when set) is the numeric count of runs for the same article-generation cycle (if unset or non-numeric, treated as `1`). | ||
|
|
||
| ```bash | ||
| # Check 9 — supplementary artifacts (blocking for aggregation types, any Tier-C run, and S5 when run-count >= 2) | ||
| IS_AGGREGATION=0 | ||
| IS_TIER_C=0 | ||
| IS_MULTI_RUN=0 | ||
| RUN_COUNT=1 | ||
| [[ "${ARTICLE_TYPE:-}" =~ ^(weekly-review|monthly-review)$ ]] && IS_AGGREGATION=1 | ||
| [[ "${ANALYSIS_TIER:-standard}" == "comprehensive" ]] && IS_TIER_C=1 | ||
|
||
| [[ "${ANALYSIS_RUN_COUNT:-}" =~ ^[0-9]+$ ]] && RUN_COUNT="${ANALYSIS_RUN_COUNT}" | ||
| (( RUN_COUNT >= 2 )) && IS_MULTI_RUN=1 | ||
| if (( IS_AGGREGATION == 1 || IS_TIER_C == 1 || IS_MULTI_RUN == 1 )); then | ||
| SUPP=() | ||
| if (( IS_AGGREGATION == 1 || IS_TIER_C == 1 )); then | ||
| SUPP+=(analysis-index.md reference-analysis-quality.md mcp-reliability-audit.md workflow-audit.md) | ||
| fi | ||
| (( IS_AGGREGATION == 1 )) && SUPP+=(cross-session-intelligence.md session-baseline.md) | ||
| (( IS_MULTI_RUN == 1 )) && SUPP+=(cross-run-diff.md) | ||
| for f in "${SUPP[@]}"; do | ||
| [ -s "$ANALYSIS_DIR/$f" ] || { echo "❌ supplementary missing (agg=$IS_AGGREGATION tier-c=$IS_TIER_C multi-run=$IS_MULTI_RUN): $f"; FAIL=1; } | ||
| done | ||
| fi | ||
| ``` | ||
|
|
||
| Depth floors for S1–S7 are configured under `thresholds.breaking.*` / per-type sections in [`reference-quality-thresholds.json`](../../analysis/methodologies/reference-quality-thresholds.json); when a floor is absent the `defaults.supplementaryFloor` (120 lines) applies. | ||
|
|
||
| **Pass-2 quality audit — recommendation, not enforced in the bash probe** — the bash check above does **not** parse `reference-analysis-quality.md §5`. When the artifact is produced, agents SHOULD re-read its `§5 Overall Benchmark Judgement` total and trigger another Pass-2 iteration if the score is below **7.0/10** before invoking this gate. This is a non-enforced self-discipline rule (no blocking logic); an enforced numeric-floor check would require adding a YAML/JSON score block to the template and a dedicated parser, which is deferred to a follow-up change. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -21,9 +21,14 @@ This directory is the **single source of truth** for how GitHub Agentic Workflow | |
| - Source repo: <https://github.com/github/gh-aw> | ||
| - GitHub CLI: <https://cli.github.com/manual/> | ||
| - **Analysis artifact contract** (the "deep political analysis" product that every news workflow must produce *before* writing a single article sentence): | ||
| - **Read-me-first** — [`analysis/methodologies/artifact-catalog.md`](../../analysis/methodologies/artifact-catalog.md) (single source of truth for every artifact — family, template, depth floor, Mermaid, MCP, gate check) and [`analysis/methodologies/per-artifact-methodologies.md`](../../analysis/methodologies/per-artifact-methodologies.md) (Inputs / Analytic-moves / Evidence-rules / Anti-patterns per artifact) | ||
| - Methodology → [`analysis/methodologies/ai-driven-analysis-guide.md`](../../analysis/methodologies/ai-driven-analysis-guide.md) | ||
| - Templates → [`analysis/templates/`](../../analysis/templates/) (one file per artifact) | ||
| - Indicator maps → [`worldbank-indicator-mapping.md`](../../analysis/methodologies/worldbank-indicator-mapping.md) (non-economic WB) + [`imf-indicator-mapping.md`](../../analysis/methodologies/imf-indicator-mapping.md) (authoritative IMF for all economic context) | ||
| - Depth floors → [`reference-quality-thresholds.json`](../../analysis/methodologies/reference-quality-thresholds.json) (per-article-type × per-artifact line floors, tradecraft signals) | ||
| - Templates → [`analysis/templates/`](../../analysis/templates/) (one file per artifact — 23 always-on + per-document + 7 operational supplementary) | ||
| - **23 required artifacts** (every workflow, produced in `analysis/daily/$ARTICLE_DATE/$SUBFOLDER/`): Family A Core Synthesis — `README.md`, `executive-brief.md`, `synthesis-summary.md`, `significance-scoring.md`, `classification-results.md`, `swot-analysis.md`, `risk-assessment.md`, `threat-analysis.md`, `stakeholder-perspectives.md`; Family B Structural Metadata — `data-download-manifest.md`, `cross-reference-map.md`; Family C Strategic Extensions (F3EAD Exploit→Analyze) — `scenario-analysis.md`, `comparative-international.md`, `devils-advocate.md`, `intelligence-assessment.md`, `methodology-reflection.md` ⭐; Family D Electoral & Domain Lenses — `election-2026-analysis.md`, `voter-segmentation.md`, `coalition-mathematics.md`, `historical-parallels.md`, `media-framing-analysis.md`, `implementation-feasibility.md`, `forward-indicators.md`. Plus Family E per-document `documents/{dok_id}-analysis.md`. Full definitions in [`04-analysis-pipeline.md`](04-analysis-pipeline.md). | ||
| - **7 operational supplementary artifacts** (not counted in the 23; recommended for `deep`, mandatory for `comprehensive` / Tier-C): `analysis-index.md`, `reference-analysis-quality.md`, `mcp-reliability-audit.md`, `workflow-audit.md`, `cross-run-diff.md`, `cross-session-intelligence.md`, `session-baseline.md`. | ||
| - **4 analytical supplementary artifacts** (never blocking, optional deep-dives): `pestle-analysis.md`, `political-stride-assessment.md`, `wildcards-blackswans.md`, `quantitative-swot.md`. Full rules in [`analytical-supplementary-methodology.md`](../../analysis/methodologies/analytical-supplementary-methodology.md). | ||
|
Comment on lines
29
to
+31
|
||
| - **Tier-C aggregation** produces the same 23 artifacts plus depth multipliers, cross-type sibling-folder citations, prior-cycle PIR ingestion, and a 1 500-word article floor — see [`ext/tier-c-aggregation.md`](ext/tier-c-aggregation.md). | ||
| - **Single blocking gate**: [`05-analysis-gate.md`](05-analysis-gate.md) is the only enforcer. No article may be touched until the gate passes. | ||
| - **AI-FIRST rule** (from [`00-base-contract.md`](00-base-contract.md) §Non-negotiable rules #5): minimum 2 complete iterations — Pass 1 creates every artifact, Pass 2 reads Pass 1 back in full and improves every section. | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -11,13 +11,13 @@ | |
|
|
||
| <p align="center"> | ||
| <a href="#"><img src="https://img.shields.io/badge/Owner-CEO-0A66C2?style=for-the-badge" alt="Owner"/></a> | ||
| <a href="#"><img src="https://img.shields.io/badge/Version-4.2-555?style=for-the-badge" alt="Version"/></a> | ||
| <a href="#"><img src="https://img.shields.io/badge/Version-4.3-555?style=for-the-badge" alt="Version"/></a> | ||
| <a href="#"><img src="https://img.shields.io/badge/Effective-2026--06--01-success?style=for-the-badge" alt="Effective Date"/></a> | ||
| <a href="#"><img src="https://img.shields.io/badge/Classification-Public-green?style=for-the-badge" alt="Classification"/></a> | ||
| </p> | ||
|
|
||
| **📋 Document Owner:** CEO | **📄 Version:** 4.2 | **📅 Last Updated:** 2026-06-01 (UTC) | ||
| **🔄 Review Cycle:** Quarterly | **⏰ Next Review:** 2026-06-30 | ||
| **📋 Document Owner:** CEO | **📄 Version:** 4.3 | **📅 Last Updated:** 2026-04-23 (UTC) | ||
| **🔄 Review Cycle:** Quarterly | **⏰ Next Review:** 2026-07-23 | ||
| **🏢 Owner:** Hack23 AB (Org.nr 5595347807) | **🏷️ Classification:** Public | ||
|
|
||
| --- | ||
|
|
@@ -321,6 +321,35 @@ graph TB | |
|
|
||
| ## 📖 Methodology Catalog | ||
|
|
||
| ### 🗂️ Reference & Meta Methodologies (v4.3 — Added 2026-04-23) | ||
|
|
||
| | Document | Purpose | Consumers | | ||
| |----------|---------|-----------| | ||
| | [`artifact-catalog.md`](artifact-catalog.md) | **Single source of truth** for every markdown artifact produced by a news workflow (23 core + 7 supplementary + N per-document). One row per artifact naming methodology, template, line floor, Mermaid type, MCP data source and gate check. | All agents, `.github/prompts/04-analysis-pipeline.md`, `05-analysis-gate.md` | | ||
| | [`per-artifact-methodologies.md`](per-artifact-methodologies.md) | Per-artifact **Inputs / Analytic-moves / Evidence-rules / Anti-patterns** reference. One §section per artifact — read only the sections needed for the current run. | All agents writing artifacts | | ||
| | [`worldbank-indicator-mapping.md`](worldbank-indicator-mapping.md) | Article-type → non-economic World Bank indicator codes (social, health, education, environment, defence, agriculture, innovation, governance). Wave-2 WB↔IMF split. | `comparative-international.md`, `voter-segmentation.md`, `implementation-feasibility.md`, `session-baseline.md` | | ||
| | [`imf-indicator-mapping.md`](imf-indicator-mapping.md) | Article-type → IMF WEO/IFS/BOP/FM/GFS codes — **authoritative source** for all economic context (macro / fiscal / trade / monetary / exchange rates). Vintage-tagged forecasts, T+5. | Every artifact with economic-context obligations | | ||
| | [`reference-quality-thresholds.json`](reference-quality-thresholds.json) | Per-article-type × per-artifact **minimum line-count floors** enforced by [`05-analysis-gate.md`](../../.github/prompts/05-analysis-gate.md) Check 3. Additive tradecraft signals (WEP / Admiralty / ICD 203 / SATs / DIW / neutrality) consumed by Pass-2 self-audit. | Gate, `reference-analysis-quality.md`, Pass-2 validators | | ||
|
|
||
| These five files are the **meta-layer** — read them before opening any framework-specific methodology. They define *what* is produced, *how* it is measured, and *where* the data comes from. | ||
|
|
||
| ### 🔭 Analytical Supplementary Methodology (v1.1 — Added 2026-04-23) | ||
|
|
||
| | Document | Purpose | Templates governed | | ||
| |----------|---------|--------------------| | ||
| | [`analytical-supplementary-methodology.md`](analytical-supplementary-methodology.md) | Rules for **optional deep-dive analytical templates** that augment the 23 core artifacts with specialised lenses. Non-blocking in `05-analysis-gate.md`. Defines composition rules (DIW weight vector, evidence citations, Forward-Indicator feed, TTP mapping) and per-template analytic moves. | `pestle-analysis.md` · `political-stride-assessment.md` · `wildcards-blackswans.md` · `quantitative-swot.md` | | ||
|
Comment on lines
+336
to
+340
|
||
|
|
||
| **When to produce:** | ||
|
|
||
| - **PESTLE** — event crosses ≥ 2 macro dimensions (policy with economic spill-over, tech regulation with EU exposure, etc.) | ||
| - **STRIDE-political** — election-adjacent events, integrity incidents, disinformation spikes, critical-infrastructure votes | ||
| - **Wildcards & Black-Swans** — long-horizon forecasting (`monthly-review`, election-year aggregation) | ||
| - **Quantitative SWOT** — decision-oriented memos requiring scored ranking (coalition negotiations, party strategy) | ||
|
|
||
| These templates **never replace** a core artifact — they always pair with and cite the canonical artifact they extend. | ||
|
|
||
| --- | ||
|
|
||
| ### 🤖 AI-Driven Analysis Guide — `ai-driven-analysis-guide.md` | ||
|
|
||
| | Attribute | Value | | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The supplementary-checks intro says this is non-blocking for
standard/deepruns, but the table + bash probe makecross-run-diff.mdblocking wheneverANALYSIS_RUN_COUNT >= 2, regardless of tier. Please reword the intro so it matches the actual blocking conditions (tier/aggregation vs multi-run).