![]()
๐ค Automated Pull-Request & Issue Categorisation
๐ฏ File-Path Routing ยท Title Detection ยท Body Heuristics ยท GitHub Actions Driven
๐ Document Owner: CEO | ๐ Last Updated: 2026-05-03 (UTC) | ๐ข Owner: Hack23 AB (Org.nr 559534-7807) | ๐ท๏ธ Classification: ๐ข Public
๐ What changed since last review (v1.0 โ v1.1, 2026-05-03):
- ๐ Drift reconciliation with the live label set (
gh label list --repo Hack23/riksdagsmonitor --limit 300): the repository now carries 159 labels (was 46 in v1.0). The categories below cover the original 46 plus 113 agentic-newsroom additions, grouped as:
- Agent ownership:
agent:news-journalist,agent:security-architect,agent:documentation-architect,agent:data-pipeline-specialist,agent:intelligence-operative- Component routing:
component:content,component:visualization,component:i18n,component:navigation,component:news,component:ai-workflows,component:security,component:architecture,component:cia-data,component:data-integration,component:data-pipeline,component:workflow,component:strategy,component:future,component:performance,component:dashboard,component:documentation- Priority (canonical & legacy):
priority:critical,priority:high,priority:medium,priority:low(legacypriority-critical,priority-high,priority-medium,priority-lowstill active)- Type:
type:feature,type:documentation,type:security,type:accessibility,type:monitoring- Agentic newsroom:
agentic-workflows,agentic-workflow,agentic-news,automated-news,news-generation,news-content,news-article,auto-generated,ai-generated,needs-editorial-review,analysis-data,analysis-only- Article horizons & types:
realtime-monitor,realtime-pulse,evening-analysis,week-ahead,month-ahead,year-ahead,long-horizon,forward-look,weekly-review,monthly-review,committee-reports,propositions,motions,interpellations,interpellation-debates,opposition-motions,article:motions- Language tracks:
lang:en,lang:sv,multi-language,translations- Pipeline:
automated-pipeline,economic-context,cia-intelligence,data-update,heartbeat,news/content,content- Tooling:
npm,github-actions,code-quality,frontend,refactoring,typescript,validation,maintenance- ๐ The taxonomy is documented categorically below; for the canonical machine-readable taxonomy see
.github/labeler.ymland the setup workflow.github/workflows/setup-labels.yml.
This document describes the automatic labeling system for the riksdagsmonitor repository. Labels are automatically applied to pull requests based on file changes, PR titles, and PR body content.
The riksdagsmonitor repository uses an automated labeling system powered by GitHub Actions to categorize pull requests and issues. This helps maintain organization, improves searchability, and provides quick visual context about changes.
setup-labels.yml + 113 labels created dynamically by agentic workflows, GitHub Actions labeler, and manual additionsagent:* (per-Copilot-agent owner), component:* (subsystem), priority:* / priority-*, agentic-workflows, news-generation, needs-editorial-review, auto-generated, ai-generated, horizon tags (week-ahead, month-ahead, quarter-ahead, year-ahead, long-horizon, forward-look, realtime-monitor, realtime-pulse)Note: The
setup-labels.ymlworkflow verifies exactly 46 base labels (the core taxonomy defined in the workflow itself). The remaining 113 labels are created on-the-fly by the agentic news workflows, the GitHub Actions labeler (.github/labeler.yml), and manual issue triage. The full live label set can be queried withgh label list --repo Hack23/riksdagsmonitor --limit 300.
Run the label setup workflow to create all required labels:
Direct link: Setup Repository Labels Workflow
Once labels are created, the automatic labeler runs on every PR:
.github/labeler.yml configurationLabels for content generation and feature development:
| Label | Color | Description |
|---|---|---|
news | News articles and content generation | |
dashboard | Interactive dashboards (Chart.js/D3.js) | |
visualization | Data visualization features | |
intelligence | Political intelligence analysis |
Auto-applies when:
news/, dashboard/, js/*-dashboard.jsnews:, dashboard:, viz:- [x] ๐ฐ News Content, - [x] ๐ DashboardLabels for technical implementation:
| Label | Color | Description |
|---|---|---|
html-css | HTML/CSS changes | |
javascript | JavaScript code changes | |
workflow | GitHub Actions workflows | |
security | Security improvements |
Auto-applies when:
.html, .css, .js files.github/workflows/ fileshtml:, js:, workflow:, security:Labels for data pipeline and integration:
| Label | Color | Description |
|---|---|---|
cia-data | CIA platform data integration | |
riksdag-data | Riksdag-Regering MCP data | |
data-pipeline | ETL and data processing | |
schema | Data schema changes |
Auto-applies when:
cia-data/, data/cia/, schemas/scripts/load-cia-*.js, scripts/mcp-client.jscia:, riksdag:, pipeline:, schema:Labels for multi-language support (14 languages):
| Label | Color | Description |
|---|---|---|
i18n | Internationalization/localization | |
translation | Translation updates | |
rtl | RTL language support (Arabic, Hebrew) |
Auto-applies when:
index_*.html, sitemap_*.html, news/**/*-*.htmlTRANSLATION_GUIDE.mdi18n:, translation:, rtl:Supported Languages:
Labels for security and compliance frameworks:
| Label | Color | Description |
|---|---|---|
isms | ISMS compliance changes | |
iso-27001 | ISO 27001 controls | |
nist-csf | NIST CSF compliance | |
cis-controls | CIS Controls |
Auto-applies when:
SECURITY_ARCHITECTURE.md, THREAT_MODEL.md, CRA-ASSESSMENT.md.github/skills/iso-27001-controls/, .github/skills/nist-csf-mapping/isms:, iso-27001:, nist:, cis:Frameworks:
Labels for CI/CD and infrastructure:
| Label | Color | Description |
|---|---|---|
ci-cd | CI/CD pipeline changes | |
deployment | Deployment configuration | |
performance | Performance optimization | |
monitoring | Monitoring and alerting |
Auto-applies when:
.github/workflows/ filesCNAME, robots.txt, vite.config.jsci:, deploy:, perf:, monitoring:Labels for code quality and testing:
| Label | Color | Description |
|---|---|---|
testing | Test coverage | |
accessibility | WCAG 2.1 AA compliance | |
documentation | Documentation updates | |
refactor | Code refactoring |
Auto-applies when:
tests/, cypress/, *.test.js**/*.md filestest:, a11y:, docs:, refactor:Essential workflow labels:
| Label | Color | Description |
|---|---|---|
bug | Bug fixes | |
enhancement | Enhancements | |
dependencies | Dependency updates |
Auto-applies when:
fix:, bug:, feat:, deps:package.json, package-lock.json- [x] ๐ Bug Fix, - [x] โจ EnhancementLabels for GitHub Copilot agents and agentic workflows:
| Label | Color | Description |
|---|---|---|
agent | Agent configuration | |
skill | Skill configuration | |
agentic-workflow | Agentic workflow changes |
Auto-applies when:
.github/agents/, .github/skills/, AGENTS.md, SKILLS.md.github/workflows/*.md, .github/workflows/*.lock.ymlagent:, skill:, aw:Manual labels for prioritization:
| Label | Color | Description |
|---|---|---|
priority-critical | Critical priority (security, outages) | |
priority-high | High priority (important features) | |
priority-medium | Medium priority (standard work) | |
priority-low | Low priority (nice-to-have) |
Usage: Manually add to PRs/issues to indicate urgency.
Automatically calculated from PR diff:
| Label | Color | Lines Changed | Description |
|---|---|---|---|
size-xs | < 10 | Extra small change | |
size-s | 10-50 | Small change | |
size-m | 50-250 | Medium change | |
size-l | 250-1000 | Large change | |
size-xl | > 1000 | Extra large change |
Auto-applies: Calculated from additions + deletions in PR diff.
Manual labels for workflow tracking:
| Label | Color | Description |
|---|---|---|
status-needs-review | Needs code review | |
status-in-progress | Work in progress | |
status-blocked | Blocked by dependencies | |
status-ready | Ready to merge |
Usage: Manually add/update as PR progresses through workflow.
The automatic labeler is configured in .github/labeler.yml. Labels are applied based on:
fix:, feat:)- [x] ๐ Bug Fix)Example:
news:
- any:
- changed-files:
- any-glob-to-any-file:
- "news/**/*.html"
- "scripts/article-template.js"
- title: "news:*"
- body: "- [x] ๐ฐ News Content"
To modify the labeling system:
.github/workflows/setup-labels.yml.github/labeler.ymlFiles changed:
news/2026-02-15-riksdag-budget-vote-en.htmlnews/2026-02-15-riksdag-budget-vote-sv.htmlLabels applied:
news (news article)html-css (HTML files)i18n (multi-language)translation (Swedish translation)size-s (< 50 lines)Files changed:
js/politician-dashboard.jspolitician-dashboard.htmlcia-data/politician/view_riksdagen_politician_ranking_sample.csvPR Title: feat: Add politician influence network visualization
Labels applied:
dashboard (dashboard changes)visualization (data visualization)javascript (JS code)html-css (HTML file)cia-data (CIA data)enhancement (feature)size-m (50-250 lines)Files changed:
SECURITY_ARCHITECTURE.mdTHREAT_MODEL.md.github/skills/iso-27001-controls/SKILL.mdPR Title: security: Update ISO 27001 control mapping
Labels applied:
security (security changes)isms (ISMS compliance)iso-27001 (ISO 27001)documentation (markdown files)skill (skill changes)size-m (50-250 lines)Files changed:
.github/workflows/data-pipeline.yml.github/workflows/quality-checks.ymlPR Title: ci: Optimize data pipeline workflow
Labels applied:
workflow (GitHub Actions)ci-cd (CI/CD changes)data-pipeline (data pipeline)performance (optimization)size-s (< 50 lines)Problem: Labels are not being applied to PRs.
Solutions:
.github/labeler.yml is valid YAMLProblem: Some labels don't exist in the repository.
Solution:
Problem: Size label doesn't match PR diff.
Explanation: Size is calculated from total changes (additions + deletions), not just additions.
Formula:
TOTAL_CHANGES = ADDITIONS + DELETIONS
if TOTAL_CHANGES < 10: size-xs
elif TOTAL_CHANGES < 50: size-s
elif TOTAL_CHANGES < 250: size-m
elif TOTAL_CHANGES < 1000: size-l
else: size-xl
.github/labeler.yml.github/workflows/setup-labels.yml.github/workflows/labeler.ymlWhen contributing to the labeling system:
Last Updated: 2026-02-15
Version: 1.0
Maintained by: Hack23 AB (Org.nr 5595347807)
| ๐ Platforms | ๐ฆ Open-Source Projects | ๐ก๏ธ Governance & Standards |
|---|---|---|
| ๐ณ๏ธ Riksdagsmonitor โ Swedish Parliament intelligence ๐ช๐บ EU Parliament Monitor โ European coverage ๐ต๏ธ Citizen Intelligence Agency โ political-data engine ๐ Hack23 AB โ corporate site ๐ฐ Hack23 Blog โ engineering & policy ๐ผ Hack23 on LinkedIn | ๐ณ๏ธ Hack23/riksdagsmonitor ๐ต๏ธ Hack23/cia ๐ช๐บ Hack23/euparliamentmonitor ๐ Hack23/european-parliament-mcp โ Hack23/cia-compliance-manager ๐ฅ Hack23/black-trigram ๐ Hack23/homepage | ๐ก๏ธ Hack23 ISMS-PUBLIC โ public ISMS ๐ Information Security Policy ๐ค AI Policy ๐งช Secure Development Policy ๐ฏ Threat Modeling Policy โ ๏ธ Vulnerability Management ๐ท๏ธ Classification Framework |
๐ณ๏ธ Empower citizens ยท ๐ Strengthen democratic accountability ยท ๐ต๏ธ Illuminate the political process
ยฉ 2008โ2026 Hack23 AB (Org.nr 559534-7807) ยท Maintainer: James Pether Sรถrling, CISSP CISM