Skip to content

docs+fix: enhance analysis/workflow documentation with political intelligence focus, add deprecated STRIDE aliases for backward compatibility#869

Merged
pethers merged 20 commits intomainfrom
copilot/improve-analysis-methodologies-templates
Mar 31, 2026
Merged

docs+fix: enhance analysis/workflow documentation with political intelligence focus, add deprecated STRIDE aliases for backward compatibility#869
pethers merged 20 commits intomainfrom
copilot/improve-analysis-methodologies-templates

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 30, 2026

Documentation overhaul across 5 files to add workflow-specific data/analytics matrices, fix STRIDE references, and add color-coded Mermaid diagrams focused on political intelligence. Includes code changes to rename threat assessment from STRIDE to Political Threat Landscape with backward-compatible deprecated aliases.

STRIDE → Political Threat Landscape (code + docs)

  • Renamed threat assessment method/exports from political-stride to political-threat-landscape across pipeline code, types, and unit tests
  • Added deprecated backward-compatible aliases for migration period:
    • PoliticalStrideCategory type → PoliticalThreatDimension
    • strideCategories optional field on PoliticalThreatAssessment
    • ALL_POLITICAL_STRIDE_CATEGORIES constant → ALL_THREAT_LANDSCAPE_DIMENSIONS
    • 'political-stride' analysis method → 'political-threat-landscape'
  • Included 'political-stride' in VALID_ANALYSIS_METHODS so CLI validation (--analysis-methods=political-stride) accepts the deprecated alias, while keeping it out of ALL_ANALYSIS_METHODS (the default execution set)
  • Replaced remaining STRIDE references in WORKFLOWS.md and FUTURE_WORKFLOWS.md architecture doc maps with "Political Threat Landscape analysis"

Directory slug corrections

  • Fixed documentation slugs to match canonical ArticleCategory enum values: breaking-news/breaking/, weekly-review/week-in-review/, monthly-review/month-in-review/

analysis/README.md (311→418 lines, 5 Mermaid diagrams)

  • Workflow-specific data requirements matrix showing mandatory MCP feeds per workflow
  • Per-file AI analysis pipeline with 5-dimension quality gate (≥7.0/10)
  • Political Threat Landscape 6-dimension table replacing STRIDE
  • ISMS policy alignment table

analysis/methodologies/README.md (+66 lines, 10 Mermaid diagrams)

  • Workflow-specific analytical approach section mapping methodologies to article types
  • Unique analytics requirements per workflow (e.g., breaking=urgency rating, motions=per-resolution vote breakdown)

analysis/templates/README.md (+65 lines, 12 Mermaid diagrams)

  • Template routing diagram showing which of the 8 templates each workflow uses
  • Per-workflow template coverage table

WORKFLOWS.md (+48 lines, 21 Mermaid diagrams)

  • PRIO 1 section: Unique data & analytics matrix per workflow with Mermaid diagram showing feed→workflow mapping
  • Mandatory feed data, analytical tools, and unique focus per article type

FUTURE_WORKFLOWS.md (+71 lines, 11 Mermaid diagrams)

  • Phase 0b: Political Intelligence Quality Enhancement (in-progress)
  • Per-document deep analysis goals, quality scoring metrics targets
  • Workflow-specific analytical tool matrix

Code changes

  • Removed deprecated config exports (VALID_ARTICLE_TYPES, THEME_TOGGLE_BUTTON)
  • Removed votingAnomalies field from ThreatAssessmentInput
  • Fixed Prettier formatting in src/constants/config.ts

All 2714 tests pass. 0 lint errors.

…irectories

- New methodologies: political-style-guide.md, ai-driven-analysis-guide.md
- New templates: synthesis-summary.md, per-file-political-intelligence.md
- New reference/: 4 ISMS adaptation files (classification, risk, threat, style)
- New daily/, weekly/, monthly/ directories with README.md files

Agent-Logs-Url: https://github.com/Hack23/euparliamentmonitor/sessions/57531450-91f6-46d8-bc57-800940f916e9

Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
@github-actions github-actions bot added the documentation Documentation updates label Mar 30, 2026
Copilot AI and others added 3 commits March 30, 2026 22:02
…rotocols

- Threat framework: Added 5 additional frameworks (Attack Trees, LINDDUN,
  PESTLE, Scenario Planning, Kill Chain) beyond STRIDE baseline
- Risk methodology: Added AI analysis protocol, SWOT integration rules,
  anti-pattern warnings
- SWOT framework: Added AI protocol, evidence quality gates
- Classification guide: Added borderline guidance, AI protocol

Agent-Logs-Url: https://github.com/Hack23/euparliamentmonitor/sessions/57531450-91f6-46d8-bc57-800940f916e9

Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
- All 6 existing templates: Added anti-pattern warnings, AI analysis
  mandate, evidence requirement reminders
- README.md: Comprehensive v2 rewrite with per-file analysis protocol,
  temporal aggregation (daily/weekly/monthly), collision-free design,
  6 methodology docs, 8 templates, 4 reference files

Agent-Logs-Url: https://github.com/Hack23/euparliamentmonitor/sessions/57531450-91f6-46d8-bc57-800940f916e9

Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
- Threat framework: Added explanation why STRIDE alone is insufficient
- AI analysis guide: Added weighted score formula with example
- Synthesis template: Added Mermaid comments for style replacement
- Risk adaptation: Clarified pre-election likelihood adjustment cap

Agent-Logs-Url: https://github.com/Hack23/euparliamentmonitor/sessions/57531450-91f6-46d8-bc57-800940f916e9

Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Copilot AI changed the title [WIP] Improve analysis methodologies and templates for EU Parliament Overhaul analysis methodologies and templates for deeper political intelligence Mar 30, 2026
Copilot AI requested a review from pethers March 30, 2026 22:09
Copilot AI and others added 2 commits March 30, 2026 22:29
…l Threat Landscape

- Rewrite political-threat-framework.md: Replace STRIDE with purpose-built
  6-dimension Political Threat Landscape (Coalition Shifts, Transparency
  Deficit, Policy Reversal, Institutional Pressure, Legislative Obstruction,
  Democratic Erosion) + Diamond Model + Attack Trees + PESTLE + Scenario
  Planning + Kill Chain
- Rewrite threat-analysis.md template: Replace S/T/R/I/D/E sections with
  6 political dimensions (CS/TD/PR/IP/LO/DE) + Diamond Model section
- Update synthesis-summary.md: Replace STRIDE references with Threat Landscape
- Update per-file-political-intelligence.md: Replace STRIDE with Threat Landscape

Agent-Logs-Url: https://github.com/Hack23/euparliamentmonitor/sessions/aab07e05-1867-42e1-a959-332c1a3b690e

Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Types:
- Add PoliticalThreatDimension type alias (PoliticalStrideCategory kept
  for backward compat)
- Add threatDimensions field to PoliticalThreatAssessment (strideCategories
  kept for backward compat)
- Export PoliticalThreatDimension from types/index.ts

Pipeline:
- Add political-threat-landscape as primary method (political-stride kept
  as deprecated alias)
- Update all method mappings (builders, subdirs, confidence, filenames)

Assessment utility:
- Remove STRIDE from all display labels (now "Coalition Shifts" not
  "Coalition Shifts (S)")
- Update markdown output headers to "Political Threat Landscape Analysis"
- Export ALL_THREAT_LANDSCAPE_DIMENSIONS constant
- Update all JSDoc comments

Analysis docs:
- Update README.md, ai-driven-analysis-guide, style guide, ISMS reference
  to remove all STRIDE references

All 2713 tests pass, TypeScript compiles cleanly.

Agent-Logs-Url: https://github.com/Hack23/euparliamentmonitor/sessions/aab07e05-1867-42e1-a959-332c1a3b690e

Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
@github-actions github-actions bot added needs-tests Needs test coverage scripts Scripts and automation labels Mar 30, 2026
- per-file template: Replace S/T/R/I/D/E prefixes with CS/TD/PR/IP/LO/DE
- per-file template: Replace LINDDUN section with Diamond Model
- threat framework: Fix date reference, add Diamond Model citation URL
- assessment utility: Rename ALL_STRIDE_CATEGORIES to ALL_THREAT_DIMENSIONS
- workflow files: Update 9 workflow .md files to remove STRIDE naming
- docs/analysis-methodology/README.md: Update STRIDE references
- monthly/README.md: Fix STRIDE reference in threat landscape description

Agent-Logs-Url: https://github.com/Hack23/euparliamentmonitor/sessions/aab07e05-1867-42e1-a959-332c1a3b690e

Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
@github-actions github-actions bot added infrastructure CI/CD and build infrastructure github_actions GitHub Actions updates workflows GitHub workflows labels Mar 30, 2026
Copilot AI changed the title Overhaul analysis methodologies and templates for deeper political intelligence Replace STRIDE with Political Threat Landscape framework across analysis pipeline Mar 30, 2026
Copilot AI and others added 2 commits March 30, 2026 23:11
- Remove PoliticalStrideCategory interface → PoliticalThreatDimension is now canonical
- Remove strideCategories field → threatDimensions is the only field
- Remove political-stride analysis method alias entirely
- Rename ALL_POLITICAL_STRIDE_CATEGORIES → ALL_THREAT_LANDSCAPE_DIMENSIONS
- Rename STRIDE_LABELS → DIMENSION_LABELS
- Rename buildPoliticalStrideMarkdown → buildThreatLandscapeMarkdown
- Remove political-stride from METHOD_SUBDIRS, METHOD_FILENAMES, METHOD_DEFAULT_CONFIDENCE, METHOD_BUILDERS
- Update all test files to match new naming
- All 2713 tests pass, 0 lint errors

Agent-Logs-Url: https://github.com/Hack23/euparliamentmonitor/sessions/ba8bef99-205a-4b26-b0af-6b2b302fbff4

Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
@github-actions github-actions bot added testing Testing improvements test-coverage-impact Impacts test coverage labels Mar 30, 2026
Copilot AI changed the title Replace STRIDE with Political Threat Landscape framework across analysis pipeline Remove STRIDE: complete migration to Political Threat Landscape framework Mar 30, 2026
…tre and update FUTURE_WORKFLOWS.md with visionary intelligence evolution roadmap

Agent-Logs-Url: https://github.com/Hack23/euparliamentmonitor/sessions/32bf8f1d-59b1-4126-a180-273811060f51

Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Copilot AI changed the title Remove deprecated code: STRIDE references, unused constants, dead backward-compat fields docs: enhance workflow and analysis documentation with political intelligence focus Mar 31, 2026
Copilot AI and others added 3 commits March 31, 2026 01:31
…Mermaid diagrams, quality gates; add workflow-specific analytical routing to methodologies and templates READMEs; fix STRIDE references in WORKFLOWS.md and FUTURE_WORKFLOWS.md

Agent-Logs-Url: https://github.com/Hack23/euparliamentmonitor/sessions/557ffdea-fe4e-4379-9c38-280305e09b37

Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
…ase 0b intelligence quality enhancement to FUTURE_WORKFLOWS.md; enhance all documentation with workflow-specific analytics focus

Agent-Logs-Url: https://github.com/Hack23/euparliamentmonitor/sessions/557ffdea-fe4e-4379-9c38-280305e09b37

Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Copilot AI changed the title docs: enhance workflow and analysis documentation with political intelligence focus docs: enhance analysis, workflow, and future workflow documentation with political intelligence focus Mar 31, 2026
@pethers pethers marked this pull request as ready for review March 31, 2026 01:44
@pethers pethers requested a review from Copilot March 31, 2026 01:45
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the project’s political-intelligence documentation and analysis framework to replace STRIDE terminology with a “Political Threat Landscape” model, while aligning the analysis pipeline and tests with the new naming and output conventions.

Changes:

  • Expanded workflow + analysis documentation (matrices, Mermaid diagrams, templates, and reference guides) with a political-intelligence focus.
  • Renamed the threat assessment method/outputs from political-stride to political-threat-landscape across pipeline code, exports, and unit tests.
  • Removed a couple of deprecated config exports in config (and compiled scripts/ output).

Reviewed changes

Copilot reviewed 48 out of 48 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
WORKFLOWS.md Updates workflow documentation, adds PRIO 1 data/analytics matrix and political intelligence “Ops Centre” diagrams.
FUTURE_WORKFLOWS.md Reframes roadmap around political intelligence + threat landscape; adds Phase 0b quality enhancement content.
docs/analysis-methodology/README.md Updates higher-level methodology docs to reference Threat Landscape vs STRIDE.
analysis/daily/README.md New doc describing daily analysis directory structure and rules.
analysis/weekly/README.md New doc describing weekly aggregation directory structure and retention.
analysis/monthly/README.md New doc describing monthly aggregation directory structure and retention.
analysis/templates/threat-analysis.md Updates threat template to Political Threat Landscape dimensions + adds anti-pattern guidance.
analysis/templates/synthesis-summary.md Adds a synthesis template combining all analysis streams and quality requirements.
analysis/templates/swot-analysis.md Adds anti-pattern guidance emphasizing evidence/citations.
analysis/templates/stakeholder-impact.md Adds anti-pattern guidance emphasizing evidence/citations.
analysis/templates/significance-scoring.md Adds anti-pattern guidance + requires 5-dimension scoring breakdown.
analysis/templates/risk-assessment.md Adds anti-pattern guidance + requires quantified L×I with evidence.
analysis/templates/political-classification.md Adds anti-pattern guidance + structure/diagram requirements.
analysis/templates/per-file-political-intelligence.md New per-file deep analysis template spanning classification/SWOT/risk/threat/stakeholders.
analysis/reference/isms-threat-modeling-adaptation.md New mapping doc from ISMS threat modeling concepts to political threat analysis.
analysis/reference/isms-style-guide-adaptation.md New mapping doc from ISMS style guide to political intelligence writing standards.
analysis/reference/isms-risk-assessment-adaptation.md New mapping doc from ISMS risk assessment to EU political risk scoring.
analysis/reference/isms-classification-adaptation.md New mapping doc from ISMS classification to political sensitivity/urgency conventions.
analysis/methodologies/political-threat-framework.md Major rewrite to multi-framework Threat Landscape + Diamond/Attack Trees/PESTLE/etc.
analysis/methodologies/political-style-guide.md New writing style guide defining depth levels, evidence density, and prohibited patterns.
analysis/methodologies/political-swot-framework.md Adds an AI protocol section tying SWOT to evidence and other analyses.
analysis/methodologies/political-risk-methodology.md Adds an AI protocol section and risk→SWOT integration rules.
analysis/methodologies/political-classification-guide.md Adds an AI protocol section and borderline classification guidance.
analysis/methodologies/ai-driven-analysis-guide.md New per-file AI analysis protocol + quality gate checklist.
src/utils/political-threat-assessment.ts Renames STRIDE concepts to Threat Landscape; changes assessment shape + exported constant name.
src/types/political-threats.ts Renames STRIDE type(s) to Threat Landscape equivalents; updates top-level assessment property name.
src/generators/pipeline/analysis-stage.ts Renames analysis method string + output filename for threat assessment markdown generation.
src/index.ts Updates public exports to new Threat Landscape constant name.
src/types/index.ts Updates barrel exports to new threat-dimension type name.
src/constants/config.ts Removes deprecated exports (VALID_ARTICLE_TYPES, THEME_TOGGLE_BUTTON).
test/unit/political-threat-assessment.test.js Updates unit tests for new constant name and assessment object shape.
test/unit/analysis-stage.test.js Updates unit tests for renamed analysis method and output filename.
scripts/utils/political-threat-assessment.js Compiled output updated to match src/utils/political-threat-assessment.ts.
scripts/generators/pipeline/analysis-stage.js Compiled output updated to match src/generators/pipeline/analysis-stage.ts.
scripts/index.js Compiled exports updated to new Threat Landscape constant name.
scripts/constants/config.js Compiled output updated to match src/constants/config.ts deprecated export removals.
.github/workflows/news-breaking.md Updates workflow doc text and analysis-method list to political-threat-landscape.
.github/workflows/news-committee-reports.md Updates workflow doc threat assessment wording to Threat Landscape.
.github/workflows/news-motions.md Updates workflow doc threat assessment wording to Threat Landscape.
.github/workflows/news-propositions.md Updates workflow doc threat assessment wording to Threat Landscape.
.github/workflows/news-week-ahead.md Updates workflow doc threat assessment wording to Threat Landscape.
.github/workflows/news-weekly-review.md Updates workflow doc threat assessment wording to Threat Landscape.
.github/workflows/news-month-ahead.md Updates workflow doc threat assessment wording to Threat Landscape.
.github/workflows/news-monthly-review.md Updates workflow doc threat assessment wording to Threat Landscape.
.github/workflows/news-article-generator.md Updates workflow doc threat assessment wording + references to the methodology shift.
Comments suppressed due to low confidence (1)

src/constants/config.ts:48

  • This change removes the deprecated VALID_ARTICLE_TYPES and THEME_TOGGLE_BUTTON exports. Even if unused internally, this is still a breaking change for external consumers who may import them. Consider keeping deprecated re-exports for one release cycle (or documenting the removal with an explicit major-version bump).

Comment on lines 5 to +12
/**
* @module Utils/PoliticalThreatAssessment
* @description Pure political threat assessment functions adapted from ISMS threat
* modeling (STRIDE, attack trees, kill chain analysis) applied to parliamentary
* political dynamics. All functions are stateless and safely handle malformed or
* missing input data. No side effects.
* @description Pure political threat assessment functions using the Political
* Threat Landscape framework (6 dimensions: Coalition Shifts, Transparency
* Deficit, Policy Reversal, Institutional Pressure, Legislative Obstruction,
* Democratic Erosion), supplemented by attack trees and kill chain analysis.
* All functions are stateless and safely handle malformed or missing input data.
* No side effects.
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR description states “No code changes — documentation only”, but this change set includes behavior/API changes (e.g., renaming the threat assessment method/exports and updating tests). Please update the PR title/description to reflect the code changes, or split docs vs. code into separate PRs for accurate review/release notes.

Copilot uses AI. Check for mistakes.
Comment on lines 107 to 115
// ─── Political Threat Assessment ─────────────────────────────────────────────
export {
assessPoliticalThreats,
buildActorThreatProfiles,
buildConsequenceTree,
analyzeLegislativeDisruption,
generateThreatAssessmentMarkdown,
ALL_POLITICAL_STRIDE_CATEGORIES,
ALL_THREAT_LANDSCAPE_DIMENSIONS,
} from './utils/political-threat-assessment.js';
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This re-export renames/removes ALL_POLITICAL_STRIDE_CATEGORIES in the public entrypoint. If this package has external consumers, this is a breaking API change; consider keeping a deprecated alias export (or bumping major version and documenting the migration).

Copilot uses AI. Check for mistakes.
Comment on lines 271 to 280
export type {
PoliticalActorThreatProfile,
ConsequenceNode,
PoliticalConsequenceTree,
DisruptionPoint,
LegislativeDisruptionAnalysis,
PoliticalStrideCategory,
PoliticalThreatDimension,
PoliticalThreatAssessment,
ThreatAssessmentInput,
} from './political-threats.js';
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PoliticalStrideCategory is no longer exported from the central types barrel. If consumers import this type, this is a breaking change; consider re-exporting a deprecated alias type (e.g., mapping PoliticalStrideCategory to PoliticalThreatDimension) during a transition period.

Copilot uses AI. Check for mistakes.
Comment on lines +1573 to +1580
// ─── All threat landscape dimensions constant (for external use) ──────────────

/**
* All Political STRIDE categories in canonical order.
* Useful for iterating over all categories without hardcoding the list.
* All Political Threat Landscape dimensions in canonical order.
* Useful for iterating over all dimensions without hardcoding the list.
*/
export const ALL_POLITICAL_STRIDE_CATEGORIES: readonly PoliticalThreatCategory[] =
ALL_STRIDE_CATEGORIES;
export const ALL_THREAT_LANDSCAPE_DIMENSIONS: readonly PoliticalThreatCategory[] =
ALL_THREAT_DIMENSIONS;
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exporting only ALL_THREAT_LANDSCAPE_DIMENSIONS removes the previously exported ALL_POLITICAL_STRIDE_CATEGORIES. To avoid breaking downstream imports, consider keeping a deprecated alias constant (and/or update a changelog + major version).

Copilot uses AI. Check for mistakes.
Comment on lines +32 to +52
```
analysis/daily/
├── YYYY-MM-DD/ ← ISO 8601 date (always zero-padded)
│ ├── breaking-news/ ← news-breaking workflow output
│ │ ├── classification/
│ │ ├── risk-scoring/
│ │ ├── threat-assessment/
│ │ ├── data/ ← MCP data for this workflow
│ │ └── synthesis-summary.md
│ ├── committee-reports/ ← news-committee-reports workflow output
│ │ ├── classification/
│ │ ├── risk-scoring/
│ │ ├── threat-assessment/
│ │ ├── data/
│ │ └── synthesis-summary.md
│ ├── weekly-review/ ← news-weekly-review workflow output
│ │ └── ...
│ ├── week-ahead/ ← news-week-ahead workflow output
│ │ └── ...
│ └── ai-*.md ← Cross-workflow AI synthesis (shared)
```
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The example directory names here (e.g. breaking-news/, weekly-review/) don’t match the slugs produced by the generator code: ArticleCategory.BREAKING_NEWS is breaking, and WEEK_IN_REVIEW is week-in-review (see src/types/common.ts). This will mislead operators looking for artifacts; please align the documented folder names with the actual articleTypeSlug values.

Copilot uses AI. Check for mistakes.
Comment on lines +64 to +77
## 🔗 Workflow → Directory Mapping

| Workflow | Article Type Slug | Output Directory |
|----------|-------------------|------------------|
| `news-breaking` | `breaking-news` | `analysis/daily/YYYY-MM-DD/breaking-news/` |
| `news-committee-reports` | `committee-reports` | `analysis/daily/YYYY-MM-DD/committee-reports/` |
| `news-propositions` | `propositions` | `analysis/daily/YYYY-MM-DD/propositions/` |
| `news-motions` | `motions` | `analysis/daily/YYYY-MM-DD/motions/` |
| `news-week-ahead` | `week-ahead` | `analysis/daily/YYYY-MM-DD/week-ahead/` |
| `news-weekly-review` | `weekly-review` | `analysis/daily/YYYY-MM-DD/weekly-review/` |
| `news-month-ahead` | `month-ahead` | `analysis/daily/YYYY-MM-DD/month-ahead/` |
| `news-monthly-review` | `monthly-review` | `analysis/daily/YYYY-MM-DD/monthly-review/` |
| `news-article-generator` | `article-generator` | `analysis/daily/YYYY-MM-DD/article-generator/` |

Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow→directory mapping table uses breaking-news and weekly-review, but the codebase’s canonical article category values are breaking and week-in-review (src/types/common.ts). Please update the slugs in the table to match the enum values so the mapping is actionable.

Copilot uses AI. Check for mistakes.
Comment on lines +1793 to +1806
```
analysis/2026-03-31/
├── ai-daily-synthesis.md ← Cross-article synthesis (date root)
├── breaking-news/ ← news-breaking workflow
│ ├── manifest.json
│ ├── classification/
│ ├── threat-assessment/
│ ├── risk-scoring/
│ └── data/ ← EP MCP data for this workflow
├── committee-reports/ ← news-committee-reports workflow
│ ├── manifest.json
│ ├── classification/
│ └── data/
├── motions/ ← news-motions workflow
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The “Analysis Artifact Structure” example uses breaking-news/ etc., but the actual analysis output is scoped by deriveArticleTypeSlug() (e.g., breaking, week-in-review) under {outputDir}/{date}/{slug}/ (see src/generators/news-enhanced.ts and src/generators/pipeline/analysis-stage.ts). Please align the example paths with the real on-disk layout to prevent confusion during incident/debugging.

Copilot uses AI. Check for mistakes.
Comment on lines 212 to 221
@@ -214,8 +216,8 @@ export interface PoliticalThreatAssessment {
readonly overallThreatLevel: ImpactLevel;
/** Confidence level in the assessment */
readonly confidence: 'high' | 'medium' | 'low';
/** Political STRIDE analysis for each of the six categories */
readonly strideCategories: readonly PoliticalStrideCategory[];
/** Political Threat Landscape analysis for each of the six dimensions */
readonly threatDimensions: readonly PoliticalThreatDimension[];
/** Threat profiles for key political actors */
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PoliticalThreatAssessment replaces the strideCategories property with threatDimensions. If any downstream code consumes the serialized assessment object (or relies on this interface), this is a breaking change. Consider a transition strategy (e.g., keep strideCategories as a deprecated alias property, or provide a converter) and document the migration.

Copilot uses AI. Check for mistakes.
@pethers
Copy link
Copy Markdown
Member

pethers commented Mar 31, 2026

@copilot apply changes based on the comments in this thread and fix Test and Report / Validate Code (pull_request)
Test and Report / Validate Code (pull_request)Failing after 59s

…ttier formatting, correct directory slugs in documentation

Agent-Logs-Url: https://github.com/Hack23/euparliamentmonitor/sessions/5d836654-12b3-4736-b79f-88f6046ef762

Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 31, 2026

@copilot apply changes based on the comments in this thread and fix [Test and Report / Validate C...

Fixed in 290b247:

  1. CI formatting failure: Fixed Prettier formatting in src/constants/config.ts
  2. Backward-compatible deprecated aliases (addressing breaking API concerns):
    • PoliticalStrideCategory type alias → PoliticalThreatDimension
    • strideCategories optional field on PoliticalThreatAssessment
    • ALL_POLITICAL_STRIDE_CATEGORIES constant → ALL_THREAT_LANDSCAPE_DIMENSIONS
    • political-stride analysis method alias → political-threat-landscape
  3. Directory slugs corrected to match ArticleCategory enum values:
    • breaking-news/breaking/
    • weekly-review/week-in-review/
    • monthly-review/month-in-review/

All 2713 tests pass, 0 lint errors, Prettier check passes.

Copilot AI changed the title docs: enhance analysis, workflow, and future workflow documentation with political intelligence focus docs+fix: enhance analysis/workflow documentation with political intelligence focus, add deprecated STRIDE aliases for backward compatibility Mar 31, 2026
@pethers pethers requested a review from Copilot March 31, 2026 02:07
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 48 out of 48 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

test/unit/analysis-stage.test.js:76

  • The tests cover the renamed default method (political-threat-landscape) but don’t cover the promised backward-compatible alias. Add assertions that VALID_ANALYSIS_METHODS includes political-stride and a runAnalysisStage test case that enabledMethods: ['political-stride'] is accepted and writes the expected threat assessment markdown output.

Comment on lines 319 to +323
| 'cross-session-intelligence'
// Per-document intelligence analysis
| 'document-analysis';
| 'document-analysis'
// Deprecated alias — use 'political-threat-landscape' instead
| 'political-stride';
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

political-stride is added as a deprecated AnalysisMethod alias, and the pipeline maps it to the new builder/filename, but VALID_ANALYSIS_METHODS is still derived only from ALL_ANALYSIS_METHODS + document-analysis. That means CLI/user validation will reject --analysis-methods=political-stride, breaking the stated backward compatibility. Include 'political-stride' in VALID_ANALYSIS_METHODS (and consider keeping it out of ALL_ANALYSIS_METHODS defaults if desired).

Copilot uses AI. Check for mistakes.
@pethers
Copy link
Copy Markdown
Member

pethers commented Mar 31, 2026

@copilot apply changes based on the comments in this thread

…compatible CLI validation

Agent-Logs-Url: https://github.com/Hack23/euparliamentmonitor/sessions/db3755f9-7f16-4dfc-a897-726a279c270a

Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 31, 2026

@copilot apply changes based on the comments in this thread

Fixed in bf74888. Added 'political-stride' to VALID_ANALYSIS_METHODS so CLI validation (--analysis-methods=political-stride) accepts the deprecated alias. Also added a dedicated test verifying the deprecated alias is present in the valid methods set. All 2714 tests pass.

@pethers pethers merged commit cb7b645 into main Mar 31, 2026
14 checks passed
@pethers pethers deleted the copilot/improve-analysis-methodologies-templates branch March 31, 2026 02:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Documentation updates github_actions GitHub Actions updates infrastructure CI/CD and build infrastructure needs-tests Needs test coverage scripts Scripts and automation test-coverage-impact Impacts test coverage testing Testing improvements workflows GitHub workflows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants