# jeurboy/icontext architecture

> Architecture diagram of the GitHub repository jeurboy/icontext, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-24). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/jeurboy/icontext
- Repository: https://github.com/jeurboy/icontext

## Overview

iContext is a set of six portable AI-agent skills for creating, maintaining, visualizing, and using a layered project context. The main workflow starts when a project owner invokes a skill: init scaffolds context; feature planning turns requirements into role-split plans; update and audit maintain existing context; visualize exports a dependency graph; and loadtest prepares guarded, page-specific performance tests and reports. README documents these capabilities and their handoffs; sampled source confirms the visualization exporter and load-test scenario/report behavior, but not the internal implementation of every skill procedure.

Main entry points: [`icontext-feature/PROCEDURE.md`](https://github.com/jeurboy/icontext/blob/main/icontext-feature/PROCEDURE.md) (Plan feature), [`icontext-loadtest/PROCEDURE.md`](https://github.com/jeurboy/icontext/blob/main/icontext-loadtest/PROCEDURE.md) (Prepare load test), [`icontext-init/PROCEDURE.md`](https://github.com/jeurboy/icontext/blob/main/icontext-init/PROCEDURE.md) (Initialize context), [`icontext-loadtest/templates/load-tests/load-test.js`](https://github.com/jeurboy/icontext/blob/main/icontext-loadtest/templates/load-tests/load-test.js) (k6 test runner)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_setup["Context setup"]
  node_init["Initialize context<br/>[PROCEDURE.md]"]
  node_init_templates["Context templates"]
  node_context_backbone["Layered context"]
end

subgraph group_maintenance["Context maintenance"]
  node_update["Update context<br/>[PROCEDURE.md]"]
  node_audit["Audit context<br/>[PROCEDURE.md]"]
  node_visualize["Export graph<br/>[PROCEDURE.md]"]
end

subgraph group_planning["Feature planning"]
  node_feature["Plan feature<br/>[PROCEDURE.md]"]
  node_discovery["Requirement discovery"]
  node_role_review["Role review<br/>[ROLE.md]"]
  node_plan_templates["Role-split plan templates"]
  node_feature_plan["Feature plan"]
  node_autoplan["Plan preparation"]
  node_security_review["Security review"]
  node_qa_gates["QA gates"]
end

subgraph group_testing["Load testing"]
  node_loadtest["Prepare load test<br/>[PROCEDURE.md]"]
  node_load_templates["Load-test templates"]
  node_scenario_registry["Endpoint scenarios<br/>[endpoints.js]"]
  node_runner["k6 test runner<br/>[load-test.js]"]
  node_test_report["Test reports"]
end

subgraph group_shared["Templates and export"]
  node_exporter["Graph exporter"]
  node_graph_output["HTML/JS graph"]
end

node_owner(("Project owner"))
node_target_api{{"Staging API"}}

node_owner -->|"invokes"| node_init
node_init -->|"uses templates"| node_init_templates
node_init -->|"scaffolds"| node_context_backbone
node_owner -->|"invokes"| node_update
node_update -->|"updates approved"| node_context_backbone
node_owner -->|"invokes"| node_audit
node_audit -->|"checks drift"| node_context_backbone
node_owner -->|"invokes"| node_visualize
node_visualize -->|"runs"| node_exporter
node_exporter -->|"reads"| node_context_backbone
node_exporter -->|"writes"| node_graph_output
node_owner -->|"invokes"| node_feature
node_feature -.->|"selects requirements"| node_discovery
node_feature -->|"uses for review"| node_role_review
node_feature -->|"uses templates"| node_plan_templates
node_feature -->|"writes"| node_feature_plan
node_feature -.->|"prepares plan"| node_autoplan
node_feature -->|"requests plan review"| node_security_review
node_feature -->|"closes with"| node_qa_gates
node_owner -->|"invokes"| node_loadtest
node_loadtest -->|"uses templates"| node_load_templates
node_loadtest -->|"selects scenario"| node_scenario_registry
node_loadtest -->|"configures"| node_runner
node_runner -->|"sends requests"| node_target_api
node_runner -->|"generates"| node_test_report

click node_init "https://github.com/jeurboy/icontext/blob/main/icontext-init/PROCEDURE.md"
click node_init_templates "https://github.com/jeurboy/icontext/tree/main/icontext-init/templates"
click node_update "https://github.com/jeurboy/icontext/blob/main/icontext-update/PROCEDURE.md"
click node_audit "https://github.com/jeurboy/icontext/blob/main/icontext-audit/PROCEDURE.md"
click node_visualize "https://github.com/jeurboy/icontext/blob/main/icontext-visualize/PROCEDURE.md"
click node_exporter "https://github.com/jeurboy/icontext/blob/main/icontext-visualize/scripts/export-context-graph.js"
click node_feature "https://github.com/jeurboy/icontext/blob/main/icontext-feature/PROCEDURE.md"
click node_role_review "https://github.com/jeurboy/icontext/blob/main/icontext-init/templates/context/ROLE.md"
click node_plan_templates "https://github.com/jeurboy/icontext/tree/main/icontext-feature/templates/plan-template"
click node_loadtest "https://github.com/jeurboy/icontext/blob/main/icontext-loadtest/PROCEDURE.md"
click node_load_templates "https://github.com/jeurboy/icontext/tree/main/icontext-loadtest/templates/load-tests"
click node_scenario_registry "https://github.com/jeurboy/icontext/blob/main/icontext-loadtest/templates/load-tests/endpoints.js"
click node_runner "https://github.com/jeurboy/icontext/blob/main/icontext-loadtest/templates/load-tests/load-test.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_init,node_init_templates,node_context_backbone toneBlue
class node_update,node_audit,node_visualize toneAmber
class node_feature,node_discovery,node_role_review,node_plan_templates,node_feature_plan,node_autoplan,node_security_review,node_qa_gates,node_target_api toneMint
class node_loadtest,node_load_templates,node_scenario_registry,node_runner,node_test_report toneRose
class node_exporter,node_graph_output,node_owner toneIndigo
```

## Components

### Context setup

- [Initialize context](https://github.com/jeurboy/icontext/blob/main/icontext-init/PROCEDURE.md): `icontext-init/PROCEDURE.md`
- [Context templates](https://github.com/jeurboy/icontext/tree/main/icontext-init/templates): `icontext-init/templates`
- **Layered context**

### Context maintenance

- [Update context](https://github.com/jeurboy/icontext/blob/main/icontext-update/PROCEDURE.md): `icontext-update/PROCEDURE.md`
- [Audit context](https://github.com/jeurboy/icontext/blob/main/icontext-audit/PROCEDURE.md): `icontext-audit/PROCEDURE.md`
- [Export graph](https://github.com/jeurboy/icontext/blob/main/icontext-visualize/PROCEDURE.md): `icontext-visualize/PROCEDURE.md`

### Feature planning

- [Plan feature](https://github.com/jeurboy/icontext/blob/main/icontext-feature/PROCEDURE.md): `icontext-feature/PROCEDURE.md`
- **Requirement discovery**
- [Role review](https://github.com/jeurboy/icontext/blob/main/icontext-init/templates/context/ROLE.md): `icontext-init/templates/context/ROLE.md`
- [Role-split plan templates](https://github.com/jeurboy/icontext/tree/main/icontext-feature/templates/plan-template): `icontext-feature/templates/plan-template`
- **Feature plan**
- **Plan preparation**
- **Security review**
- **QA gates**

### Load testing

- [Prepare load test](https://github.com/jeurboy/icontext/blob/main/icontext-loadtest/PROCEDURE.md): `icontext-loadtest/PROCEDURE.md`
- [Load-test templates](https://github.com/jeurboy/icontext/tree/main/icontext-loadtest/templates/load-tests): `icontext-loadtest/templates/load-tests`
- [Endpoint scenarios](https://github.com/jeurboy/icontext/blob/main/icontext-loadtest/templates/load-tests/endpoints.js): `icontext-loadtest/templates/load-tests/endpoints.js`
- [k6 test runner](https://github.com/jeurboy/icontext/blob/main/icontext-loadtest/templates/load-tests/load-test.js): `icontext-loadtest/templates/load-tests/load-test.js`
- **Test reports**

### Templates and export

- [Graph exporter](https://github.com/jeurboy/icontext/blob/main/icontext-visualize/scripts/export-context-graph.js): `icontext-visualize/scripts/export-context-graph.js`
- **HTML/JS graph**

### Other components

- **Project owner**
- **Staging API**

## Connections

- Project owner → Initialize context: invokes
- Initialize context → Context templates: uses templates
- Initialize context → Layered context: scaffolds
- Project owner → Update context: invokes
- Update context → Layered context: updates approved
- Project owner → Audit context: invokes
- Audit context → Layered context: checks drift
- Project owner → Export graph: invokes
- Export graph → Graph exporter: runs
- Graph exporter → Layered context: reads
- Graph exporter → HTML/JS graph: writes
- Project owner → Plan feature: invokes
- Plan feature → Requirement discovery: selects requirements
- Plan feature → Role review: uses for review
- Plan feature → Role-split plan templates: uses templates
- Plan feature → Feature plan: writes
- Plan feature → Plan preparation: prepares plan
- Plan feature → Security review: requests plan review
- Plan feature → QA gates: closes with
- Project owner → Prepare load test: invokes
- Prepare load test → Load-test templates: uses templates
- Prepare load test → Endpoint scenarios: selects scenario
- Prepare load test → k6 test runner: configures
- k6 test runner → Staging API: sends requests
- k6 test runner → Test reports: generates
