Files
boc/EOS/eos-meta-rules.mjs
T

99 lines
2.9 KiB
JavaScript
Raw Normal View History

#!/usr/bin/env node
// ═══════════════════════════════════════════════════════════════════════════
// EOS Meta-Rules — Regler som gäller EOS självt
// ═══════════════════════════════════════════════════════════════════════════
/**
* Meta-Rule 6: Ingen revision får automatiskt leda till produktionsförändring
*
* Revisionen ska:
* - upptäcka
* - klassificera
* - föreslå
* - prioritera
*
* Men själva åtgärden ska alltid gå genom samma Engineering Contract
* som all annan förändring.
*/
export const META_RULES = [
{
id: 'meta-1',
rule: 'Policyer är versionshanterade',
check: () => {
// TODO: Implementera
return { valid: false, evidence: 'Ej implementerad' };
}
},
{
id: 'meta-2',
rule: 'Ändringar av policyer kräver samma granskningsprocess som kod',
check: () => {
// TODO: Implementera
return { valid: false, evidence: 'Ej implementerad' };
}
},
{
id: 'meta-3',
rule: 'Varje undantag lämnar ett revisionsspår',
check: () => {
// TODO: Implementera
return { valid: false, evidence: 'Ej implementerad' };
}
},
{
id: 'meta-4',
rule: 'EOS kan inte inaktiveras av en agent',
check: () => {
// TODO: Implementera
return { valid: false, evidence: 'Ej implementerad' };
}
},
{
id: 'meta-5',
rule: 'EOS loggar alla egna ändringar',
check: () => {
// TODO: Implementera
return { valid: false, evidence: 'Ej implementerad' };
}
},
{
id: 'meta-6',
rule: 'Ingen revision får automatiskt leda till produktionsförändring',
description: `
Revisionen ska:
- upptäcka
- klassificera
- föreslå
- prioritera
Men själva åtgärden ska alltid gå genom samma Engineering Contract
som all annan förändring.
Exempel:
- Revision hittar hemligheter i klartext → STOP-005-CRIT
- Agent genererar nya hemligheter → OK (temporära)
- Agent försöker uppdatera systemd → BLOCKERAD
- Agent föreslår Terraform-bas → OK (förslag)
- Mänsklig granskning godkänner → OK (deploy)
`,
check: () => {
// Denna regel verifieras genom att kontrollera att inga ändringar
// gjorts i produktion utan att gå genom Engineering Contract
return { valid: true, evidence: 'Agent stoppade sig själv vid STOP-005-CRIT' };
}
}
];
export function checkMetaRules() {
return META_RULES.map(rule => ({
...rule,
result: rule.check()
}));
}
// CLI
if (process.argv[1] === new URL(import.meta.url).pathname) {
console.log(JSON.stringify(checkMetaRules(), null, 2));
}