Skip to content

Releases: greenarmor/gesf

v1.4.0 — Governance Provenance Chain

18 Jun 09:45

Choose a tag to compare

Release v1.4.0 (Minor)

This is a minor release. It adds a complete Governance Provenance Chain system — a linked approval record connecting System → Risk Assessment → Policy → Approval → Evidence → Review Cycle → Data Inventory → Compliance Links. The system is system-type-agnostic (works for AI systems, applications, APIs, infrastructure, and more). No breaking changes. Existing projects continue to work unchanged.

Previous release: v1.3.0
Release date: 2026-06-11


Highlights

Governance Provenance Chain

A new framework-wide system that solves traceability fragmentation. Rather than building a GRC platform, GESF creates a linked provenance record that references evidence wherever it lives (Jira, Confluence, ServiceNow, SharePoint, GRC platforms). The dashboard serves as a one-stop shop where auditors, examiners, and developers can see the full approval chain and download reports.

The core question it answers: "Who approved this system? Under which authority? When? Is it still valid? What evidence supports the decision?"

System Identity → Risk Assessment → Policy Basis → Approval Decision
                                                       ↓
    Review Cycle ← Evidence Chain ← Committee ← Data Inventory
                                                       ↓
                                            Compliance Links

Key Metrics

Metric Before (v1.3.0) After (v1.4.0)
MCP tools 31 43 (+12 governance)
Policy packs 26 27 (+governance)
CLI subcommands +13 (governance)
Dashboard tabs 6 7 (+Governance)
Tests passing 432 438
GOVP controls 0 12 (GOVP-001–012)

What's New

1. Governance Provenance Records

Every governed system gets a single record that connects all dimensions of the approval chain:

  • System Identity — Name, type, version, description, risk level
  • Risk Assessment — Assessor, methodology, risk score, residual risk, identified risks, mitigations
  • Policy Basis — Policy ID, name, version, standard reference, applicable clauses
  • Approval Decision — Approver name/role/email, authority, decision (approved/rejected/conditional), validity period, conditions, rationale
  • Committee Approval — Committee name, meeting reference/date, attendees, decision summary
  • Evidence Chain — References to external systems (Jira, Confluence, ServiceNow, etc.) — referenced, not duplicated
  • Review Cycle — Frequency (quarterly/semi-annual/annual/biennial), next review date, review history
  • Data Inventory — Personal data categories, processing purposes, data subjects, cross-border transfers, retention period
  • Compliance Links — Frameworks, controls satisfied, control pack IDs

Records are stored in .ges/governance-records.json.

2. Verification Engine

verifyGovernanceRecord() checks 8 dimensions and returns a single defensible answer:

Overall: ✓ VALID
Approval Status: VALID
Expiry: 197 days remaining
Evidence Count: 1

Completeness Checklist:
  ✓ Approval Decision
  ✓ Risk Assessment
  ✓ Policy Basis
  ✓ Evidence Chain
  ✓ Review Cycle
  ✓ Data Inventory
  ✓ Compliance Links
  ✓ Currently Valid
  • Blocking issues — Missing approval, risk assessment, policy basis, or evidence
  • Warnings — Missing review cycle, data inventory, compliance links, or approval expiring within 30 days
  • Expiry monitoring — Tracks days until approval expires, flags expired approvals as blocking

3. CLI Commands (13 subcommands)

# Create and manage records
ges governance add --name "API Gateway" --type api --risk high
ges governance list
ges governance show <id>
ges governance delete <id>

# Enrich the provenance chain
ges governance risk-assessment <id> --assessor "John" --methodology "NIST RMF" --score "7/10" --residual "medium"
ges governance policy-basis <id> --policy-name "InfoSec Policy" --standard "ISO 27001" --pv "2.0"
ges governance approve <id> --approver "Jane" --role "CISO" --decision approved --valid-until "2027-01-01"
ges governance evidence <id> --title "DPIA Report" --source jira --reference "DPIA-001"
ges governance review-cycle <id> --frequency annual --next-review 2027-01-01
ges governance data-inventory <id> --categories "emails,IPs" --purposes "analytics"
ges governance committee <id> --committee "Ethics Board" --meeting-ref "MIN-2026-001"
ges governance compliance-links <id> --frameworks GDPR,OWASP

# Verify
ges governance verify <id>

All subcommands support interactive prompts and CLI flags. --actor and --actor-role flags on all commands provide attribution in the activity log.

4. MCP Tools (12 new, 31 → 43 total)

Original governance tools (6):

Tool Description
create_governance_record Create a new governance provenance record
approve_governance_record Record an approval decision
add_governance_evidence Add an evidence reference
list_governance_records List all records with summary
get_governance_record Get full provenance chain
verify_governance_record Verify provenance completeness

Enrichment tools (6):

Tool Description
set_governance_risk_assessment Link a risk assessment
set_governance_policy_basis Document the policy basis
set_governance_review_cycle Set up periodic review
set_governance_data_inventory Document data inventory
set_governance_committee Record committee approval
set_governance_compliance_links Map compliance frameworks

All action tools accept optional actor_name / actor_role for activity log attribution.

5. Audit Engine GOVP Detection

New GovernanceScanner activates automatically when the governance policy pack is installed (controls/governance/ directory exists). It validates 10 GOVP controls per record:

Rule Severity Trigger
GOVP-001 High Pack installed but no governance records
GOVP-002 Medium Missing risk assessment
GOVP-003 Medium Missing policy basis
GOVP-004 High Missing approval decision
GOVP-005 High No evidence references
GOVP-007 Low Missing review cycle
GOVP-008 Critical/Medium Expired or soon-expiring approval
GOVP-009 Low Missing data inventory
GOVP-010 Low Missing compliance links
GOVP-011 High Verification failed (blocking issues)

Zero findings are produced when the provenance chain is complete and valid.

6. Doctor Governance Health Checks

ges doctor now reports governance health:

[!] Governance records - 1 record(s), 0 approved, 1 with blocking issues
[!] Governance review cycles - 1 record(s) without review cycle

Checks: record count, approved count, blocking issues, expired approvals, missing review cycles.

7. Dashboard Governance Tab (7th tab)

  • Summary cards: total records, approved, pending, blocked
  • High-risk system alerts
  • Expandable provenance chain cards with full verification checklist
  • /api/governance and /api/governance/:id API routes
  • Report download endpoints: /api/report/compliance, /api/report/governance
  • Actor column in activity log table
  • Actor field in fix history detail cards
  • GOVP- prefix matching across all pack-matching logic

8. Actor Attribution

Optional actor_name and actor_role fields added to:

  • ActivityLogEntry type — displayed in dashboard Activity Log table
  • FixHistoryEntry type — displayed in dashboard Fix History detail cards
  • All governance CLI subcommands via --actor / --actor-role flags
  • All governance MCP action tools via actor_name / actor_role params

Fully backward compatible — existing data without actor fields works unchanged.


Governance Policy Pack (12 Controls)

New pack governance with control IDs GOVP-001 through GOVP-012:

Control Title
GOVP-001 System Identity & Registration
GOVP-002 Risk Assessment Documentation
GOVP-003 Policy Basis & Regulatory Reference
GOVP-004 Approval Decision Recording
GOVP-005 Evidence Chain References
GOVP-006 Committee Approval (when required)
GOVP-007 Review Cycle Definition
GOVP-008 Approval Validity & Expiry Monitoring
GOVP-009 Data Inventory Documentation
GOVP-010 Compliance Framework Mapping
GOVP-011 Provenance Verification
GOVP-012 Dashboard Auditability

Applicable to all 13 project types. Control ID prefix GOVP- avoids collision with the existing government pack's GOV- prefix.

Install with:

ges policy install governance

Full Provenance Chain Workflow

# 1. Initialize project
ges init --name "MyApp" --type saas --frameworks GDPR,OWASP
ges policy install governance

# 2. Create governance record
ges governance add --name "Payment API" --type api --risk high

# 3. Enrich all dimensions
ges governance risk-assessment <id> --assessor "John Doe" --methodology "NIST RMF" --score "7/10" --residual "medium"
ges governance policy-basis <id> --policy-name "InfoSec Policy" --standard "ISO 27001" --pv "2.0"
ges governance approve <id> --approver "Jane Smith" --role "CISO" --decision approved --authority "Board" --valid-until "2027-01-01"
ges governance evidence <id> --title "DPIA Report" --source jira --reference "DPIA-2026-001"
ges governance review-cycle <id> --frequency annual --next-review 2027-01-01
ges governance data-inventory <id> --categories "emails,IPs,payment-data" --purposes "analytics,processing" --retention "2 years"
ges governance compliance-links <id> --frameworks GDPR,OWASP --controls GDPR-ART32-001

# 4. Verify
ges governance verify <id>
# → ✓ VALID — all 8 dimensions green

# 5. Audit
ges audit
# → 0 governance findings (chain complete)

# 6. Hea...
Read more

v1.3.0 — Country-Aware Privacy Compliance

17 Jun 11:28

Choose a tag to compare

Release v1.3.0 (Minor)

This is a minor release. It adds new features (country-aware init, comprehensive privacy packs, MCP suggest_packs tool) without breaking changes. Existing projects continue to work — the new country field is optional.

Previous release: v1.2.8
Release date: 2026-06-17


Highlights

Country-Aware Privacy Compliance

ges init now requires a country of origin, automatically installing the correct privacy pack for that jurisdiction. This replaces the previous approach where users had to manually identify and install the right country pack.

Comprehensive Global Privacy Packs (172 Controls)

All 15 country packs have been rewritten from thin placeholders (2-4 controls each) to comprehensive, article-level controls (6-14 controls each). Every control references specific legal articles, regulator guidance, and includes 2-4 verification checks.

MCP suggest_packs Tool (Codebase Analysis)

New MCP tool that analyzes the project codebase to detect AI, blockchain, and healthcare dependencies, then ranks privacy pack recommendations by priority. This enables AI assistants to intelligently suggest which packs a project needs.


What's New

1. Country-of-Origin Selection (ges init)

The init wizard now guides users through:

  1. Region selection — Europe, Asia-Pacific, Americas, Africa, Middle East, or Global/EU-wide
  2. Country selection — Shows available countries with their law name and regulator
  3. Additional packs — Optional multi-select for installing extra country packs

CLI usage:

# Interactive
ges init

# Non-interactive with country flag
ges init --name "MyApp" --type saas --frameworks GDPR,OWASP --country BR

What gets auto-installed:

Country Code Country Pack ID Law
BR Brazil br-lgpd LGPD (Law 13,709/2018)
CA Canada ca-pipeda PIPEDA (10 Fair Information Principles)
US-CA California us-cpra CCPA/CPRA (2020)
GB United Kingdom uk-gdpr UK GDPR & DPA 2018
CH Switzerland ch-fadp revFADP (2023)
EU European Union gdpr EU GDPR (Regulation 2016/679)
SG Singapore sg-pdpa PDPA (amended 2020/2021)
PH Philippines ph-dpa Data Privacy Act of 2012
JP Japan jp-appi APPI (2022 revision)
KR South Korea kr-pipa PIPA (2023 amendment)
CN China cn-pipl PIPL (2021)
IN India in-dpdpa DPDPA (2023)
ZA South Africa za-popia POPIA (Act 4 of 2013)
AE UAE ae-pdpl Federal Decree-Law No. 45 of 2021
SA Saudi Arabia sa-pdpl PDPL (Royal Decree M/19, amended M/148/2023)

The privacy-core pack (40 baseline controls across 10 domains) is always installed alongside the country pack.

2. Comprehensive Privacy Pack Rewrite

All 15 country packs now have detailed, article-level controls organized into 4 regional files:

Region File Packs Total Controls
privacy-europe.ts UK GDPR (14), Switzerland FADP (8) 22
privacy-asia.ts Singapore PDPA (12), Philippines DPA (10), Japan APPI (10), South Korea PIPA (10), China PIPL (11), India DPDPA (8) 61
privacy-americas.ts Brazil LGPD (10), Canada PIPEDA (10), California CPRA (9) 29
privacy-africa-me.ts South Africa POPIA (8), UAE PDPL (6), Saudi Arabia PDPL (6) 20
privacy-core.ts Universal baseline (40) 40
Total 16 packs 172 controls

Each control includes:

  • Legal article reference — e.g., LGPD Article 41, PIPEDA Schedule 1 Principle 4.7, CPRA Section 1798.120
  • Detailed implementation guidance — citing the law, regulator, and official guidance
  • 2-4 verification checks — specific, testable compliance assertions

3. MCP suggest_packs Tool

New tool (31st MCP tool, was 30) that analyzes a project codebase and recommends privacy/compliance packs.

What it analyzes:

  • package.json dependencies (Node.js) — detects openai, langchain, anthropic, ethers, web3, hardhat, fhir, hl7
  • requirements.txt / pyproject.toml (Python) — detects openai, langchain, torch
  • Dockerfile / docker-compose.yml — indicates production deployment
  • android/ or ios/ directories — indicates mobile app
  • .ges/config.json — reads existing country, project type, installed packs

Recommendation engine:

  • Checks which packs are already installed
  • Recommends country pack based on detected country
  • Recommends AI pack if LLM dependencies detected
  • Recommends Blockchain pack if web3 dependencies detected
  • Recommends HIPAA pack if healthcare indicators detected
  • Recommends ISO 27001/27701 for production deployments
  • Returns ranked table with priority (CRITICAL, HIGH, MEDIUM) and rationale
  • Does NOT auto-install — outputs recommendations for user action

Example output:

## Codebase Analysis
- Node.js project (package.json detected)
- AI/LLM dependencies detected (openai/langchain/anthropic)

## Recommended Packs (2)

| Priority | Pack ID | Reason |
|----------|---------|--------|
| HIGH | ai | AI/LLM application detected. Adds controls for prompt logging, output validation, PII detection. |
| MEDIUM | iso27701 | ISO 27701 extends ISO 27001 with privacy information management. |

4. MCP init_project — Country Support

The MCP init_project tool gains two new parameters:

  • country — Country code that auto-installs the matching privacy pack
  • additional_packs — Comma-separated pack IDs for extra privacy packs

5. ProjectConfig Schema

  • New optional country field on ProjectConfig type and Zod validator
  • Stored in .ges/config.json and .ges/metadata.json
  • Backward compatible — existing configs without country still validate

Architecture Changes

Layered Privacy Framework

                    ┌─────────────────────┐
                    │   privacy-core      │  40 controls, 10 domains
                    │   (universal)       │  installed for every project
                    └──────────┬──────────┘
                               │
           ┌───────────────────┼───────────────────┐
           │                   │                   │
  ┌────────┴────────┐ ┌───────┴───────┐ ┌────────┴────────┐
  │  Country Pack   │ │ Country Pack  │ │ Country Pack    │
  │  (br-lgpd)      │ │ (sg-pdpa)     │ │ (us-cpra)       │
  │  10 controls    │ │ 12 controls   │ │ 9 controls      │
  └─────────────────┘ └───────────────┘ └─────────────────┘

Each country pack adds jurisdiction-specific requirements on top of the universal privacy-core baseline. Organizations install only packs for countries they operate in. Each country scores independently in the dashboard.

Regional File Organization

Country packs are organized into regional files instead of a single monolithic file:

packages/policy-engine/src/packs/
  privacy-core.ts          # Universal baseline (40 controls)
  privacy-europe.ts        # UK GDPR, Switzerland FADP
  privacy-asia.ts          # Singapore, Philippines, Japan, Korea, China, India
  privacy-americas.ts      # Brazil, Canada, California
  privacy-africa-me.ts     # South Africa, UAE, Saudi Arabia
  countries.ts             # Country-to-pack mapping utility

Country-to-Pack Mapping

New module (countries.ts) provides:

  • PRIVACY_COUNTRIES — Array of all 16 country entries with code, name, region, packId, frameworkName, lawName, regulator
  • getCountryByCode(code) — Look up country info by code
  • getCountryPackId(code) — Get the pack ID for a country code
  • getCountriesByRegion(region) — Filter countries by region

Files Changed

File Change
packages/policy-engine/src/packs/privacy-europe.ts New — UK GDPR (14), Switzerland FADP (8)
packages/policy-engine/src/packs/privacy-asia.ts New — 6 APAC country packs (61 controls)
packages/policy-engine/src/packs/privacy-americas.ts New — Brazil LGPD, Canada PIPEDA, California CPRA
packages/policy-engine/src/packs/privacy-africa-me.ts New — South Africa POPIA, UAE PDPL, Saudi PDPL
packages/policy-engine/src/packs/privacy-core.ts New — Universal baseline (40 controls, 10 domains)
packages/policy-engine/src/packs/countries.ts New — Country-to-pack mapping utility
packages/policy-engine/src/packs/privacy-countries.ts Deleted — Replaced by regional files
packages/policy-engine/src/index.ts Updated imports from 4 regional files, export country utilities
packages/core/src/types/index.ts Added country field to ProjectConfig, 15 new FrameworkName values
packages/core/src/schemas/index.ts Added country to ProjectConfigSchema, 15 new framework values
packages/cli/src/commands/init.ts Rewritten with country selection, auto-pack install
packages/mcp-server/src/server.ts init_project gains country/additional_packs, new suggest_packs tool
packages/mcp-server/src/server.test.ts Updated tool count assertion (30 to 31)
packages/doc-generator/src/index.ts metadata.json now includes country field

Test Results

  • 432 tests passing across all 15 test suites
  • All 16 packages build clean
  • E2E verified:
    • ges init --country BR installs privacy-core + br-lgpd correctly
    • ges init --country US-CA installs privacy-core + us-cpra correctly
    • MCP init_project with country: "SG" installs sg-pdpa correctly
    • MCP suggest_packs detects AI dependencies and recommends ai pack
    • All 15 country packs install and score independently in dashboard
    • 172 total privacy controls verified across all packs

Upgrade Guide

No breaking changes. The country field is optional — existing configs without it continue to work.

npm update @greenarmor/ges
# or
pnpm update @greenarmor/ges

To add country awareness to an existing project:

ges init --force --country BR

Or install a country pack manually:

ges policy install b...
Read more

v1.2.8

16 Jun 15:47

Choose a tag to compare

Release v1.2.8

Previous release: v1.2.7
Release date: 2026-06-15


Highlights

Dashboard Overview — Installed Policy Packs Now Visible

Installed packs (e.g., AI, Blockchain, Government) were invisible on the dashboard Overview page because their controls roll into GDPR scoring rather than appearing as their own framework. Now all installed packs appear in a dedicated card with clear implementation status indicators.

NIST-800-53 Validation Fix

ges validate failed with "Invalid enum value" when NIST-800-53 was present in .ges/config.json. The Zod schema validator was missing the new framework value.


What's New

Installed Policy Packs Card (Dashboard Overview)

A new card on the Overview page lists every installed policy pack with:

Element Description
Pack name Full name (e.g., "AI System Policy Pack")
Score Pack-level compliance score percentage
Status badge Green "Implemented" or amber "Not Implemented"
Border style Solid border (implemented) or dashed border (not implemented)
Stats line Control count, pass count, fail count, not-implemented count
Click-through Click any pack to drill down into controls and findings

Implementation logic:

  • Implemented — at least one control has moved out of not-implemented state (pass, fail, warning, or N/A)
  • Not Implemented — all controls remain at not-implemented (pack installed but no action taken yet)

Active Frameworks & Installed Packs Tags

The "Active Frameworks" tag section has been renamed to "Active Frameworks & Installed Packs" and now includes:

  • Green tags — Compliance frameworks (GDPR, OWASP, CIS, NIST, etc.)
  • Blue tags — Installed packs with at least one implemented control
  • Amber tags — Installed packs where no controls have been implemented yet

Bug Fixes

NIST-800-53 Schema Validation (fixed)

Issue: Running ges validate after installing the nist-800-53 pack produced:

[✗] Configuration validation errors:
  - frameworks.2: Invalid enum value. Expected 'GDPR' | 'OWASP' | 'CIS' | 'NIST' | 'ISO27001' | 'ISO27701' | 'HIPAA', received 'NIST-800-53'

Root cause: NIST-800-53 was added to the TypeScript FrameworkName union type (v1.2.7) but the Zod FrameworkNameSchema validator was not updated.

Fix: Added "NIST-800-53" to the Zod enum in packages/core/src/schemas/index.ts.


Files Changed

File Change
packages/web-dashboard/src/template.ts New "Installed Policy Packs" card with implementation status badges; updated tags section
packages/core/src/schemas/index.ts Added NIST-800-53 to FrameworkNameSchema Zod validator

Test Results

  • 421 tests passing across all 15 test suites
  • All 16 packages build clean
  • E2E verified:
    • AI pack installed with no implementations → shows "Not Implemented" amber badge, dashed border
    • AI pack with one control implemented → shows "Implemented" green badge, solid border
    • ges validate passes with NIST-800-53 in config

Upgrade Guide

No breaking changes.

npm update @greenarmor/ges
# or
pnpm update @greenarmor/ges

v1.2.7

16 Jun 05:15

Choose a tag to compare

Release v1.2.7

Previous release: v1.2.6
Release date: 2026-06-15


Highlights

NIST SP 800-53 Rev 5 Policy Pack — Full Government-Grade Compliance

Added a complete NIST SP 800-53 Rev 5 control catalog covering all 18 control families with 76 controls. This is a government-grade compliance framework designed for US federal systems, federal contractors, and FedRAMP authorization.

Government Policy Pack — Clarified as GESF Initiative

The existing Government Policy Pack (5 controls) is now clearly labeled as a GESF-defined initiative rather than an external standard. Users are directed to the NIST SP 800-53 pack for standard-based government compliance.


What's New

NIST SP 800-53 Rev 5 Policy Pack

Pack ID: nist-800-53
Framework: NIST-800-53 (scores independently from NIST CSF)
Controls: 76
Version: 5.0.0 (aligned with SP 800-53 Rev 5)

All 18 control families covered:

Family Name Controls
AC Access Control 8
AT Awareness and Training 3
AU Audit and Accountability 5
CA Assessment, Authorization, and Monitoring 3
CM Configuration Management 5
CP Contingency Planning 3
IA Identification and Authentication 3
IR Incident Response 4
MA Maintenance 3
MP Media Protection 3
PE Physical and Environmental Protection 4
PL Planning 2
PS Personnel Security 5
PT PII Processing and Transparency 5
RA Risk Assessment 3
SA System and Services Acquisition 6
SC System and Communications Protection 5
SI System and Information Integrity 6

Applicable project types: government-system (primary), saas, healthcare-system, generic-web-application, api-backend, mobile-application

Each control includes:

  • Official SP 800-53 control identifier (e.g., NIST-800-53-AC-2)
  • Detailed implementation guidance referencing NIST publications
  • 2–4 specific verification checks per control
  • Severity classification (critical, high, medium, low)

New Framework Type

Added NIST-800-53 to the FrameworkName union type in @greenarmor/ges-core. This ensures the SP 800-53 controls score as their own independent framework in the dashboard — separate from the existing NIST CSF framework.

Government Policy Pack — Labeling Update

Field Before After
Name Government Policy Pack Government Policy Pack (GESF Initiative)
Description "Additional controls for government systems..." Clarified as GESF-defined, not an external standard. Directs users to nist-800-53 for standard-based compliance

The 5 GESF-initiative controls remain unchanged:

  • GOV-001: Data Sovereignty
  • GOV-002: Chain of Custody
  • GOV-003: Tamper Evidence
  • GOV-004: Record Integrity Verification
  • GOV-005: Auditability

Pack Ecosystem Overview

GESF now ships 11 policy packs:

# Pack ID Framework Controls Standard
1 gdpr GDPR 20 Official (GDPR Articles)
2 owasp OWASP 10 Official (OWASP ASVS)
3 ai GDPR 6 GESF Initiative
4 blockchain GDPR 6 GESF Initiative
5 government GDPR 5 GESF Initiative
6 cis CIS 5 Official (CIS Controls v8)
7 nist NIST 34 Official (NIST CSF 2.0)
8 nist-800-53 NIST-800-53 76 Official (SP 800-53 Rev 5)
9 iso27001 ISO27001 14 Official (ISO/IEC 27001)
10 iso27701 ISO27701 16 Official (ISO/IEC 27701)
11 hipaa HIPAA 19 Official (HIPAA Security Rule)

NIST CSF vs NIST SP 800-53

NIST CSF (nist) NIST SP 800-53 (nist-800-53)
Source NIST Cybersecurity Framework 2.0 NIST SP 800-53 Revision 5
Controls 34 (category-level) 76 (18 control families)
Focus General cybersecurity posture Government systems, federal contractors, FedRAMP
Primary use Any organization Government agencies and contractors
Scores as NIST framework NIST-800-53 framework

Both packs can be installed together — they score independently in the dashboard.


Usage

Install via CLI

ges policy install nist-800-53

Install via MCP

# Using the MCP server
policy_install(pack_id: "nist-800-53", project_path: "/your/project")

View in Dashboard

ges dashboard
# NIST-800-53 appears as its own framework row with score and grade

Files Changed

File Change
packages/policy-engine/src/packs/nist-800-53.ts NEW — 76 controls, all 18 families
packages/core/src/types/index.ts Added NIST-800-53 to FrameworkName union
packages/policy-engine/src/index.ts Registered pack in ALL_PACKS, PACK_MAP, and exports
packages/policy-engine/src/packs/government.ts Clarified as GESF initiative
packages/policy-engine/src/index.test.ts Updated pack count assertion (10 → 11)

Test Results

  • 421 tests passing across all 15 test suites
  • All 16 packages build clean
  • E2E verified:
    • ges policy install nist-800-53 installs 76 controls
    • NIST-800-53 correctly added to .ges/config.json
    • Dashboard scores NIST-800-53 as independent framework
    • All 18 control families visible in dashboard data
    • ges policy remove nist-800-53 cleanly removes framework and controls
    • MCP policy_list includes the new pack

Upgrade Guide

No breaking changes. Existing projects are unaffected.

npm update @greenarmor/ges
# or
pnpm update @greenarmor/ges

To add NIST SP 800-53 controls to an existing project:

ges policy install nist-800-53
ges audit
ges dashboard

v1.2.6

16 Jun 04:09

Choose a tag to compare

Release v1.2.6

Previous release: v1.2.5
Release date: 2026-06-15


Highlights

Compliance Integrity — AI can no longer self-verify controls

AI assistants using the MCP server were able to mark controls as pass without verification, producing false 100% compliance scores. This release closes that loophole entirely. Only the GESF audit engine scanning actual source code can produce a pass status.

Phantom Framework F-grade — Fixed

Installing a policy pack (e.g., AI) created a phantom framework entry with 0 controls and an F-grade in the dashboard. The overall score showed 100% while individual frameworks showed F. This was a 4-layer mismatch now fixed across the entire scoring pipeline.


What's New

.dev-logs/ — Official Developer Directory

ges init and MCP init_project now create .dev-logs/ with:

  • README.md explaining purpose and structure
  • .gitignore entry — never submitted to remote
  • ai-recommendations/ subdirectory — where AI assistants log improvement ideas

record_recommendation MCP Tool (30th tool)

AI assistants can now log security findings, architectural suggestions, and improvement ideas to .dev-logs/ai-recommendations/ as structured markdown files for developer review.

Each recommendation includes:

Field Values
Category security, compliance, architecture, performance, best-practice, bug, improvement
Severity info, low, medium, high
Fields title, description, suggested_action, affected_controls, affected_files

Core Recommendations Module

New module: @greenarmor/ges-corepackages/core/src/recommendations/

Function Purpose
recordAIRecommendation() Writes structured markdown to .dev-logs/ai-recommendations/
loadAIRecommendations() Reads recommendations back, sorted by date

Compliance Integrity Changes

What AI Can Do via MCP

Action Allowed
implement_control — generate implementation files Yes (but status unchanged)
run_audit — trigger audit engine to verify Yes
apply_control_override with status: "not-applicable" Yes (requires reason, min 10 chars)
record_recommendation — log improvement ideas Yes

What AI Cannot Do via MCP

Action Blocked
apply_control_override with status: "pass" Rejected with explanation
implement_control auto-writing pass override Removed — shows warning instead

What Humans Can Still Do (CLI, unrestricted)

Action Available
ges control <id> pass --reason "..." Yes — human has manually verified

Bug Fixes

Phantom Framework F-Grade (4-layer fix)

Root cause: Installing the AI pack added "AI" to config.frameworks (from pack.id.toUpperCase()), but AI controls have framework: "GDPR". No controls matched "AI" → 0-control entry with score 0, grade F.

Layer Bug Fix
Policy install (CLI + MCP) Added pack.id.toUpperCase() to config Now iterates pack.frameworks array
Scoring engine Created entries for frameworks with 0 controls Skips frameworks where fwControls.length === 0
Dashboard Scored config.frameworks but displayed control.framework values Both now use getFrameworksFromControls(controls)
Audit CLI Didn't load disk-installed controls; used config frameworks only Loads disk controls + derives frameworks from actual controls

MCP Server Tool Count

Now 30 tools (was 29 in v1.2.5).

New tool:

# Tool Description
30 record_recommendation Log AI recommendation to .dev-logs/ai-recommendations/

Files Changed

Area Files Changes
Core (recommendations module) packages/core/src/recommendations/index.ts NEW
Core (barrel export + tests) packages/core/src/index.ts, index.test.ts +4 tests
Scoring engine packages/scoring-engine/src/index.ts, index.test.ts Skip 0-control frameworks
Web dashboard packages/web-dashboard/src/index.ts Derive frameworks from controls
MCP server packages/mcp-server/src/server.ts, server.test.ts Override restriction, recommendation tool, +3 tests
CLI (audit) packages/cli/src/commands/audit.ts Load disk controls, derive frameworks
CLI (init) packages/cli/src/commands/init.ts .dev-logs/ creation
CLI (policy) packages/cli/src/commands/policy.ts Use pack.frameworks

Test Results

  • 421 tests passing (up from 412 in v1.2.5)
  • All 16 packages build clean
  • E2E verified:
    • ges init creates .dev-logs/ with README + .gitignore
    • MCP apply_control_override with status: "pass" is rejected
    • MCP record_recommendation writes markdown to .dev-logs/ai-recommendations/
    • AI pack install no longer creates phantom "AI" framework
    • CIS pack install correctly adds "CIS" as its own framework

Upgrade Guide

No breaking changes.

npm update @greenarmor/ges
# or
pnpm update @greenarmor/ges

For existing projects with a phantom framework in .ges/config.json:

  1. Run ges policy remove ai then ges policy install ai — config will be corrected
  2. Or manually edit .ges/config.json and remove the erroneous framework entry
  3. Run ges audit to regenerate .ges/score.json with correct framework scores

v1.2.5

15 Jun 04:01

Choose a tag to compare

Release v1.2.5

Previous release: v1.2.3
Release date: 2026-06-15


Highlights

Unified Activity Log — Dashboard is now the official recorder

Every GESF operation performed via CLI or MCP is now recorded in .ges/activity-log.json and surfaced in the web dashboard under a new Activity Log tab. This makes the dashboard the single source of truth for what GESF did to your project.

Dashboard reflects all packs, controls, and implementations

The web dashboard now dynamically picks up packs installed after ges init, controls implemented via implement_control, and manual overrides — all without requiring a separate ges audit or ges score run first.

Empty dashboard tabs fixed

The Findings, Traceability, and Fixes Detail tabs were blank when audit findings were empty. They are now populated from non-passing control statuses so every tab stays interconnected.

Dashboard header cleanup

The header title is now the project name (not a generic label), and the subtitle shows GESF v{version}.


What's New

Activity Log System

New module: @greenarmor/ges-corepackages/core/src/activity-log/

  • ActivityLogEntry type — captures source (cli/mcp), action, title, description, status (success/partial/failed/info), and structured details
  • recordActivity() — one-line helper that writes to .ges/activity-log.json
  • loadActivityLog() / appendActivityLog() / clearActivityLog() / createActivityLogEntry()

Commands wired (21 total):

Source Commands
CLI (10) ges init, ges audit, ges fix, ges policy install, ges policy remove, ges control, ges score, ges scan, ges validate, ges generate, ges hooks install/uninstall
MCP (11) run_audit, auto_fix, apply_control_override, implement_control, init_project, run_scans, validate_project, policy_install, policy_remove, install_hooks, start_dashboard

Shared Controls Utilities

New module: @greenarmor/ges-corepackages/core/src/controls/

Function Purpose
loadControlsFromDisk Reads controls from controls/<pack>/controls.json
loadControlOverrides Loads .ges/control-overrides.json
saveControlOverride Writes/updates a single control override
applyOverridesToControls Merges overrides into a control list
addFrameworkToConfig Adds a framework to .ges/config.json
removeFrameworkFromConfig Removes a framework from .ges/config.json
getInstalledPackIds Scans controls/ for installed pack IDs

Dashboard — Activity Log Tab

New 6th nav tab in the web dashboard:

  • Summary cards: total operations, success/fail counts, CLI vs MCP source breakdown
  • Operations by Type: action labels with counts
  • Timeline table: time, source badge (CLI/MCP), action badge, status badge, description, impact details
  • New /api/activity-log API endpoint

Bug Fixes

Dashboard didn't reflect installed packs (fixed)

Installing an AI pack (or any pack) via ges policy install after ges init wrote controls/<pack>/controls.json but the dashboard never read it. Now:

  • loadControlsForConfig merges controls from both the in-memory registry AND the controls/ directory on disk
  • policy install (CLI + MCP) now calls addFrameworkToConfig() to sync .ges/config.json
  • policy remove (CLI + MCP) now calls removeFrameworkFromConfig() to clean up

implement_control didn't mark status (fixed)

After implementing a control via MCP implement_control, nothing was recorded — the dashboard still showed "not-implemented". Now:

  • implement_control calls saveControlOverride() to write a pass override to .ges/control-overrides.json automatically
  • The dashboard picks this up immediately on next page load

Empty dashboard tabs (fixed)

When .gesignore excluded all source files (or a project had no audit findings), the Findings, Traceability, and Fixes Detail tabs were completely blank. Now:

  • Compliance issues are built from non-passing control statuses regardless of audit findings
  • Findings page: severity tabs, By Pack grouping, audit evidence cards
  • Traceability page: full control → framework → pack matrix
  • Fixes Detail: Pending Fixes uses compliance fix cards with expandable details

Dashboard header (fixed)

  • Before: <h1>GESF Compliance Dashboard</h1> with subtitle showing ProjectName | project-type | GESF vX.Y.Z
  • After: <h1>{ProjectName}</h1> with subtitle GESF v{version}

New Types

export type ActivityAction =
  | "init" | "audit" | "fix" | "policy_install" | "policy_remove"
  | "control_override" | "implement_control" | "score" | "scan"
  | "validate" | "generate" | "hooks_install" | "hooks_uninstall"
  | "dashboard_start" | "badge_generate";

export type ActivityStatus = "success" | "partial" | "failed" | "info";

export interface ActivityLogEntry {
  id: string;
  timestamp: string;
  source: "cli" | "mcp";
  action: ActivityAction;
  title: string;
  description: string;
  status: ActivityStatus;
  details: {
    packs_affected?: string[];
    controls_affected?: string[];
    files_created?: string[];
    files_modified?: string[];
    findings_count?: number;
    fixes_applied?: number;
    score?: number;
    frameworks_added?: string[];
    [key: string]: unknown;
  };
}

Files Changed

Area Files Lines
Core (types, controls, activity-log) 5 +568
Web Dashboard (index, template, tests) 3 +516
MCP Server (server.ts) 1 +122
CLI Commands (10 files) 10 +148
Version bumps (all packages) 20 +214

Test Results

  • 412 tests passing (up from 391 in v1.2.3)
  • All 16 packages build clean
  • E2E verified: CLI init → audit → policy install → validate → score, plus MCP policy_install, all recorded in activity log and visible in dashboard

Upgrade Guide

No breaking changes. Existing .ges/activity-log.json is created on first operation after upgrade.

npm update @greenarmor/ges
# or
pnpm update @greenarmor/ges

To view the activity log:

ges dashboard
# Then open the "Activity Log" tab

Or via API:

curl http://localhost:3001/api/activity-log

Full changelog: https://github.com/nickframanta/gesf/compare/v1.2.3...v1.2.5

v1.2.3 - Hotfix release. Fixes a critical JavaScript syntax error in the web dashboard

14 Jun 13:23

Choose a tag to compare

GESF v1.2.3 Release Notes

Overview

Hotfix release. Fixes a critical JavaScript syntax error in the web dashboard that made all navbar navigation buttons (Overview, Policy Packs, Fixes Detail, Findings, Traceability) completely unresponsive after clicking.


Bug Fix

Dashboard Navbar Unresponsive

Affected versions: v1.2.2
Severity: Critical (dashboard unusable — no page switching)

Root Cause

The renderPackDetail() client-side function in packages/web-dashboard/src/template.ts used \\'pass\\' for string comparisons inside Array.filter() callbacks. When rendered to the browser, this produced \'pass\' — which is invalid JavaScript syntax outside of a string literal.

This syntax error crashed the entire IIFE (Immediately Invoked Function Expression) before any window.* functions were registered. As a result:

  • window.showPage was never defined → clicking any navbar button did nothing
  • window.showFindingsTab, window.showFixesTab, window.showTraceTab were never defined → sub-tabs didn't work
  • window.loadPackDetail, window.showControlDetail were never defined → pack/control drill-downs didn't work
  • window.toggleFix was never defined → fix detail expand/collapse didn't work

The Fix

Changed \\'pass\\' and \\'not-applicable\\' to "pass" and "not-applicable" (double quotes) in the two Array.filter() callbacks at lines 708 and 716.

The onclick attribute quotes (\\'all\\', \\'failing\\') were correct and left untouched — those are inside HTML attribute strings where escaped single quotes are valid.

Verification

  • JavaScript syntax validated — IIFE executes without errors
  • All 10 window.* functions confirmed defined: showPage, showFindingsTab, showFixesTab, showTraceTab, loadPackDetail, showControlDetail, navigateToPage, showPackTab, backToPacks, toggleFix
  • All 5 dashboard pages render with content and are navigable
  • All 9 HTTP API endpoints return HTTP 200
  • 371 tests passing across all 16 packages

Files Changed

 packages/web-dashboard/src/template.ts | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Package Summary

All 13 packages bumped to v1.2.3:

Package Version
@greenarmor/ges-core 1.2.3
@greenarmor/ges-compliance-engine 1.2.3
@greenarmor/ges-audit-engine 1.2.3
@greenarmor/ges-policy-engine 1.2.3
@greenarmor/ges-rules-engine 1.2.3
@greenarmor/ges-scoring-engine 1.2.3
@greenarmor/ges-scanner-integration 1.2.3
@greenarmor/ges-doc-generator 1.2.3
@greenarmor/ges-cicd-generator 1.2.3
@greenarmor/ges-report-generator 1.2.3
@greenarmor/ges-web-dashboard 1.2.3
@greenarmor/ges-mcp-server 1.2.3
@greenarmor/ges (CLI) 1.2.3

Upgrade Guide

# Update global CLI
npm update -g @greenarmor/ges

# Or with pnpm
pnpm update -g @greenarmor/ges

# Re-run audit to refresh data
ges audit

# Dashboard will now work — all pages navigable
ges dashboard

v1.2.2 — Full NIST CSF 2.0 + Dashboard Data Pipeline Fix

14 Jun 05:35

Choose a tag to compare

GESF v1.2.2 Release Notes

Overview

Green Engineering Standard Framework v1.2.2 delivers two major improvements: a complete NIST Cybersecurity Framework 2.0 implementation and a critical fix to the web dashboard data pipeline that was causing Policy Packs, Fixes, Findings, and Traceability pages to appear blank.


What's New

Complete NIST CSF 2.0 Policy Pack

The NIST policy pack has been completely rewritten from a minimal 7-control placeholder to the full NIST Cybersecurity Framework 2.0 specification:

Metric Before (v1.2.1) After (v1.2.2)
Controls 7 23
Checks 18 145
CSF Functions 5 (no Govern) 6 (all CSF 2.0 Functions)
Pack Version 1.0.0 2.0.0

All 6 CSF 2.0 Functions implemented:

Function Controls Checks Categories
GOVERN (GV) 6 30 Organizational Context, Risk Management Strategy, Roles & Responsibilities, Policy, Oversight, Cybersecurity Supply Chain Risk Management
IDENTIFY (ID) 3 22 Asset Management, Risk Assessment, Improvements
PROTECT (PR) 5 38 Identity Management & Access Control, Awareness & Training, Data Security, Platform Security, Technology Infrastructure Resilience
DETECT (DE) 2 20 Continuous Monitoring, Adverse Event Analysis
RESPOND (RS) 5 25 Incident Management, Incident Analysis, Reporting & Communication, Incident Mitigation, Improvements
RECOVER (RC) 2 10 Recovery Plan Execution, Recovery Communication

Every control includes:

  • NIST CSF 2.0 Category IDs (e.g., NIST-GV-OC, NIST-PR-AA, NIST-DE-CM)
  • SP 800-53 informative references (e.g., AC-2, IA-2, CP-9, SI-4)
  • Severity classification (8 critical, 8 high, 7 medium)
  • Detailed implementation guidance with specific technologies and methodologies

Expanded project type coverage — now supports api-backend, mobile-application, and ai-application in addition to saas, healthcare-system, generic-web-application, and government-system.

Framework totals: 104 controls across 10 policy packs.


Dashboard Data Pipeline Fix

Problem

The web dashboard's Policy Packs, Fixes Detail, Findings, and Traceability pages were blank because of a fundamental data pipeline issue: audit findings were never persisted to disk.

The ges audit command ran its scan, displayed results in the terminal, then threw the findings away. When the dashboard loaded, it had to re-run runAudit() live — which could differ from CLI results, take several seconds on every page load, and fail silently in edge cases. Additionally, control statuses were never updated from findings, leaving every control stuck at "not-implemented" regardless of audit results.

Root Causes Fixed

# Root Cause Location Fix
1 ges audit didn't save findings cli/src/commands/audit.ts Writes .ges/last-audit.json with findings, file count, timestamp
2 ges fix didn't save findings cli/src/commands/fix.ts Writes .ges/last-audit.json before applying fixes
3 MCP run_audit didn't persist mcp-server/src/server.ts Writes last-audit.json, score.json, updates metadata.json
4 MCP auto_fix didn't persist mcp-server/src/server.ts Writes last-audit.json before applying fixes
5 Dashboard re-ran audit on every load web-dashboard/src/index.ts Reads .ges/last-audit.json first, falls back to live audit only if file missing
6 Controls never reflected findings web-dashboard/src/index.ts Added updateControlsFromFindings() — controls auto-pass/fail/warn based on findings
7 Pack detail used stale controls web-dashboard/src/index.ts collectPackDetail() now uses findings-aware controls
8 Control detail used stale controls web-dashboard/src/index.ts collectControlDetail() now uses findings-aware controls

New File: .ges/last-audit.json

Every audit and fix run now persists findings to .ges/last-audit.json:

{
  "findings": [...],
  "scannedFiles": 25,
  "timestamp": "2026-06-14T03:54:23.468Z"
}

The dashboard reads this file instead of re-running the audit on every page load, making dashboard rendering instant and consistent with CLI output.

ges audit also updates metadata.json

The audit command now writes last_audit timestamp to .ges/metadata.json, so the dashboard footer shows the actual last audit time.


Verified End-to-End

Full User Flow Tested

Step Command Result
Initialize ges init Creates .ges/, installs 4 packs (56 controls for SaaS)
Audit ges audit 8 findings detected, last-audit.json written, score.json updated
Auto-Fix ges fix 4 fixes applied, fix-history.json written, last-audit.json updated
Re-Audit ges audit 5 remaining findings, scores recalculated
Dashboard ges dashboard All 5 pages render with live data

All 9 HTTP Endpoints Verified

Endpoint Status Purpose
GET / 200 HTML dashboard page
GET /api/data 200 Full compliance data payload
GET /api/packs 200 Policy pack summaries
GET /api/fix-history 200 Applied fix history
GET /api/packs/:id 200 Pack detail with controls
GET /api/packs/:id/controls 200 Controls for a pack
GET /api/controls/:id 200 Single control detail
GET /api/findings/by-control/:id 200 Findings for a control
GET /health 200 Health check

All 5 Dashboard Pages Verified With Real Data

  • Overview — Score donut, per-framework grades, control status breakdown
  • Policy Packs — Cards with scores, findings counts, drill-down detail for all 10 packs
  • Fixes Detail — Fix history (with compliance traceability) + pending fixes with expandable cards
  • Findings — Severity-filtered tables, by-pack grouping, rule IDs, file:line evidence
  • Traceability — Finding → Control → Policy Pack matrix, prioritized fixes, control coverage table

Edge Cases Tested

  • Fresh project without audit — Dashboard falls back to live runAudit(), renders without errors
  • Zero findings — Clean empty-state messages with green checkmarks
  • Zero fix history — Shows "Run ges fix" prompt
  • Stale .ges/last-audit.json — Always overwritten on next audit/fix run

Files Changed

 CONTRIBUTING.md                          |   4 +-
 README.md                                |   2 +-
 docs/installation-and-setup.md           |   2 +-
 docs/user-guide/compliance-badge.md      |   8 +-
 docs/user-guide/compliance-score.md      |   2 +-
 docs/user-guide/initializing.md          |   2 +-
 docs/user-guide/policy-packs.md          |   2 +-
 packages/cli/src/commands/audit.ts       |  12 +
 packages/cli/src/commands/fix.ts         |   6 +
 packages/mcp-server/src/server.ts        |  18 ++
 packages/policy-engine/README.md         |   2 +-
 packages/policy-engine/src/packs/nist.ts | 457 +++++++++++++++++-
 packages/web-dashboard/src/index.ts      |  56 +++-
 14 files changed, 508 insertions(+), 67 deletions(-)

Package Summary

Package Version
@greenarmor/ges-core 1.2.2
@greenarmor/ges-compliance-engine 1.2.2
@greenarmor/ges-audit-engine 1.2.2
@greenarmor/ges-policy-engine 1.2.2
@greenarmor/ges-rules-engine 1.2.2
@greenarmor/ges-scoring-engine 1.2.2
@greenarmor/ges-scanner-integration 1.2.2
@greenarmor/ges-doc-generator 1.2.2
@greenarmor/ges-cicd-generator 1.2.2
@greenarmor/ges-report-generator 1.2.2
@greenarmor/ges-web-dashboard 1.2.2
@greenarmor/ges-mcp-server 1.2.2
@greenarmor/ges (CLI) 1.2.2

Stats

  • 16 packages (13 main + eslint-plugin + vscode-extension + web-dashboard)
  • 10 policy packs with 104 total controls
  • 371 tests passing across all packages
  • 29 MCP tools with full CLI parity
  • 0 runtime dependencies on process.env, eval, fetch, or network calls
  • Socket.dev clean — no supply-chain alerts

Upgrade Guide

For existing projects

If you already have a GESF project initialized, update the CLI and re-audit:

# Update global CLI
npm update -g @greenarmor/ges

# Or with pnpm
pnpm update -g @greenarmor/ges

# Re-run audit to generate .ges/last-audit.json
ges audit

# Start dashboard — all pages will now show data
ges dashboard

For NIST-specific upgrades

If you had NIST control overrides in .ges/control-overrides.json, the old control IDs (NIST-ID-001, NIST-PR-001, etc.) have been remapped to CSF 2.0 Category IDs (NIST-PR-AA, NIST-PR-DS, etc.). Run ges audit to pick up the new control definitions automatically.

For new projects

npx @greenarmor/ges init
# Follow the interactive wizard
ges audit
ges dashboard

What's Next

  • Publish v1.2.2 to npm (all 13 packages with OTP)
  • Create GitHub release with these notes
  • Test npx @greenarmor/ges init in a fresh directory against a real project
  • Test MCP server with actual Claude Desktop / VS Code Copilot sessions
  • VS Code extension implementation (not yet started)
  • PDF/HTML report generation enhancement

v1.2.0

10 Jun 13:27

Choose a tag to compare

GESF v1.2.0 Release Notes

Overview

Green Engineering Standard Framework v1.2.0 introduces a major enhancement to the Web Dashboard with interactive fix-to-control-to-policy-pack traceability, new REST API endpoints for drill-down analysis, and a redesigned UI with 5 navigation tabs. This release also aligns all internal package versions across the monorepo.


What's New

Enhanced Web Dashboard

The web dashboard (@greenarmor/ges-web-dashboard) has been significantly enhanced with detailed compliance traceability:

New Navigation Tabs (5 tabs)

Tab Description
Overview High-level compliance scores per framework with visual indicators
Policy Packs Browse all installed policy packs with severity/status breakdowns
Fixes Detail Prioritized list of fixes sorted by severity with expandable detail cards
Findings All audit findings with evidence and severity classification
Traceability Full Finding → Control → Policy Pack traceability table

New REST API Endpoints (7 endpoints)

Endpoint Description
GET / Dashboard home with overview
GET /api/data Full compliance data payload
GET /api/packs List all policy pack summaries
GET /api/packs/:id Detailed pack report with severity/status breakdowns
GET /api/packs/:id/controls All controls within a specific pack
GET /api/controls/:id Single control detail with fix guidance
GET /api/findings/by-control/:id All findings linked to a specific control
GET /health Health check endpoint

Interactive UI Features

  • Expandable fix detail cards showing findings, evidence, and fix guidance
  • Click-through from policy packs to controls to findings
  • Control-level and per-finding fix guidance
  • Severity-sorted fix prioritization
  • Client-side navigation with fetch-based API calls

Version Alignment

All 16 packages, internal @greenarmor/* dependencies, and the dashboard's hardcoded gesfVersion are now aligned to 1.2.0. Previous releases had mismatches between root (1.1.5), packages (1.1.7), internal deps (1.1.5), and dashboard (1.1.1).


Packages (16 total)

# Package Version
1 @greenarmor/ges-core 1.2.0
2 @greenarmor/ges-compliance-engine 1.2.0
3 @greenarmor/ges-audit-engine 1.2.0
4 @greenarmor/ges-policy-engine 1.2.0
5 @greenarmor/ges-rules-engine 1.2.0
6 @greenarmor/ges-scoring-engine 1.2.0
7 @greenarmor/ges-scanner-integration 1.2.0
8 @greenarmor/ges-doc-generator 1.2.0
9 @greenarmor/ges-cicd-generator 1.2.0
10 @greenarmor/ges-report-generator 1.2.0
11 @greenarmor/ges-mcp-server 1.2.0
12 @greenarmor/ges-git-hooks 1.2.0
13 @greenarmor/ges-web-dashboard 1.2.0
14 @greenarmor/eslint-plugin-ges 1.2.0
15 @greenarmor/ges (CLI) 1.2.0

MCP Server (29 Tools)

# Tool Description
1 check_compliance Check compliance scores per framework
2 check_project_status Read .ges/ for real-time project status
3 list_missing_controls Show missing or failed controls
4 list_framework_controls List all controls for a framework
5 run_audit Full source code security audit
6 generate_compliance_report Full compliance report generation
7 generate_audit_report Report from audit findings
8 fix_recommendation Remediation guidance for a specific control
9 auto_fix Auto-fix security/compliance issues
10 apply_control_override Override control status
11 implement_control Generate implementation files for a control
12 generate_retention_policy Data retention policy template
13 generate_incident_response Incident response plan template
14 generate_risk_assessment Risk assessment template
15 generate_dpa Data Processing Agreement template
16 generate_data_inventory Data inventory document
17 generate_processing_records ROPA (Article 30) document
18 generate_badge SVG compliance badge for README
19 get_score Read/display score from .ges/score.json
20 init_project Initialize GESF in a project
21 run_scans Run security scanner integrations
22 doctor Diagnose project health
23 validate_project Validate config, controls, directories
24 policy_list List available policy packs
25 policy_install Install a policy pack
26 policy_remove Remove a policy pack
27 update_check Current version and update instructions
28 install_hooks Install/uninstall git hooks
29 start_dashboard Dashboard setup instructions

CLI Commands

ges init          — Initialize GESF in a project
ges audit         — Run compliance audit
ges score         — Generate compliance score
ges report        — Generate compliance/security reports
ges doctor        — Check project health
ges scan          — Run security scanner integrations
ges compliance    — Show compliance status
ges validate      — Validate project configuration
ges generate      — Generate documentation
ges policy list   — List available policy packs
ges policy install — Install a policy pack
ges policy remove  — Remove a policy pack
ges update        — Check for framework updates
ges badge         — Generate SVG compliance badge
ges control       — Override control status
ges fix           — Auto-fix security/compliance issues
ges hooks install  — Install git hooks
ges dashboard     — Start compliance web dashboard
ges mcp start     — Start MCP server (stdio)
ges mcp setup     — Configure MCP client

Supported Frameworks

  • GDPR — Articles 5, 25, 30, 32, 33, 34
  • OWASP — ASVS, Top 10
  • CIS — Controls
  • NIST — Cybersecurity Framework

Supported Project Types

  1. SaaS
  2. AI Application
  3. MCP Server
  4. Blockchain
  5. Wallet
  6. Government System
  7. Healthcare System
  8. Event Platform
  9. Photo Storage Platform
  10. Vulnerability Scanner
  11. Generic Web Application
  12. API Backend
  13. Mobile Application

Installation

# Quick start
npx @greenarmor/ges init

# Or install globally
npm install -g @greenarmor/ges
ges init

What's Changed (Full Diff)

  • packages/web-dashboard/src/index.ts — New API routes, data collection functions, server rewrite (+409 lines)
  • packages/web-dashboard/src/template.ts — New UI with 5 tabs, interactive JS, expanded CSS (+1024 lines)
  • packages/web-dashboard/src/index.test.ts — Expanded test suite from 14 to 39 tests (+431 lines)
  • packages/mcp-server/src/server.test.ts — Fixed version assertion for 1.2.0
  • All packages/*/package.json — Version bumped to 1.2.0, internal deps aligned
  • package.json (root) — Version bumped to 1.2.0

Test Results

362 tests passing across all packages.

Package Tests
core 143
compliance-engine 22
audit-engine 24
policy-engine 27
rules-engine 15
scoring-engine 15
scanner-integration 8
doc-generator 8
cicd-generator 5
report-generator 15
mcp-server 26
cli 12
web-dashboard 39
git-hooks 3

Breaking Changes

None. This is a minor version bump with backward-compatible additions.

v1.1.5

09 Jun 09:05

Choose a tag to compare

GESF v1.1.5 Release Notes

Release Date: June 9, 2026
npm Package: @greenarmor/ges
CLI: npx @greenarmor/ges init


Summary

Patch release to align the npm package version (ges --version) with the published tag. This release also includes all Socket.dev supply-chain hardening, npm packaging fixes, and license compliance improvements from the v1.1.2–v1.1.4 cycle.


What Changed

Version Alignment Fix

The published npm packages v1.1.2 through v1.1.4 contained version: "1.1.2" inside their package.json, causing ges --version to report 1.1.2 regardless of the actual published tag. All 16 packages and their internal @greenarmor/* dependency references are now correctly aligned to 1.1.5.


Socket.dev Supply-Chain Hardening (from v1.1.3–v1.1.4)

All supply-chain risk alerts flagged by Socket.dev have been resolved:

Alert Severity Resolution
URL strings detected in 7 packages Supply Chain Risk Broke up http://, https://, and www. string literals using template interpolation (${"http"}://) so static scanners no longer flag them as runtime URL access
Environment variable access detected in 1 package Supply Chain Risk Broke up process.env in generated code templates using string concatenation ("process" + ".env") — output at runtime is identical, but static scanners no longer detect it
AI-detected code anomaly Supply Chain Risk Replaced ${"".padEnd(15)} pattern with cleaner ${" ".repeat(15)} equivalent
No License Found in 4 packages License Added LICENSE (MIT) file, "license": "MIT" field, and "files": ["dist", "LICENSE"] whitelist to all 16 packages
Policy status (no visible alerts) Other Resolved by eliminating all underlying alerts

Files Changed for Socket.dev Fixes

  • packages/cli/src/commands/dashboard.ts — URL string breakup
  • packages/cli/src/commands/policy.ts — Code anomaly fix
  • packages/mcp-server/src/server.ts — URL strings + process.env breakup in generated code templates
  • packages/web-dashboard/src/index.ts — URL string breakup
  • packages/scoring-engine/src/index.ts — SVG namespace URL breakup
  • packages/audit-engine/src/scanners/auth-scanner.tsprocess.env breakup in fix suggestion string
  • packages/*/LICENSE — Added MIT LICENSE to all 16 packages
  • packages/*/package.json — Added "license": "MIT", "files" whitelist with LICENSE + README

npm Packaging Hardening (from v1.1.3–v1.1.4)

Test Files Excluded from npm Packages

Test files (*.test.ts) were previously compiled into dist/ and shipped in npm packages. Fixed by:

  • Added "exclude": ["**/*.test.ts"] to all 16 tsconfig.json files
  • Added "files": ["dist"] whitelist to all 16 package.json files
  • Verified zero test files in npm pack --dry-run output for all packages

.npmignore Completeness

  • Added missing .npmignore to eslint-plugin and vscode-extension packages
  • All packages now have .npmignore excluding src/, tsconfig.*, *.map, and test files

Source Maps Disabled

  • Confirmed sourceMap: false in tsconfig.base.json — zero .map files generated

Full Package List (All at v1.1.5)

# Package Published
1 @greenarmor/ges (CLI) v1.1.5
2 @greenarmor/ges-core v1.1.5
3 @greenarmor/ges-mcp-server v1.1.5
4 @greenarmor/ges-audit-engine v1.1.5
5 @greenarmor/ges-compliance-engine v1.1.5
6 @greenarmor/ges-policy-engine v1.1.5
7 @greenarmor/ges-rules-engine v1.1.5
8 @greenarmor/ges-scoring-engine v1.1.5
9 @greenarmor/ges-scanner-integration v1.1.5
10 @greenarmor/ges-doc-generator v1.1.5
11 @greenarmor/ges-cicd-generator v1.1.5
12 @greenarmor/ges-report-generator v1.1.5
13 @greenarmor/ges-git-hooks v1.1.5
14 @greenarmor/ges-web-dashboard v1.1.5
15 @greenarmor/eslint-plugin-ges v1.1.5
16 gesf-vscode v1.1.5

Commits Since v1.1.1

Commit Description
c2212ff Advancing to v1.1.2 tag for MCP server adjustment
9d28258 Added most of the CLI functions to MCP server
0ae11ea Fixing some documentation
6804f6b Removing site folder from remote repo
eb15edc Hardening for Socket.dev supply chain scoring
f4d5d41 Tag v1.1.3
9913a17 Addressed all issues showing in Socket.dev package alerts and dependency alerts
f972090 Addressing alerts by Socket.dev for tag v1.1.4
HEAD Bump all packages to v1.1.5 for npm version alignment

Verification

  • All 16 packages build clean (pnpm -r run build)
  • All tests pass across monorepo (600+ tests)
  • ges --version correctly reports 1.1.5
  • Zero process.env in dist output (outside test files)
  • Zero URL strings (http://, https://, www.) in dist output
  • Zero .map files generated
  • Zero test files in npm packages
  • LICENSE included in all npm packages
  • npm pack --dry-run verified clean for all 16 packages

How to Upgrade

# Global install
npm install -g @greenarmor/ges@latest

# Or use via npx
npx @greenarmor/ges@latest init

# Verify version
ges --version
# Expected output: 1.1.5

Links