

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
1<!-- Generated by EEIK generate_adapters.py on 2026-08-10 — do not edit by hand -->2# AGENTS.md — this project34OpenAI Codex CLI reads this file to understand the repository context.5Child AGENTS.md files in subdirectories override or extend these instructions.67---89## Project1011Enterprise application: this project1213- Type: greenfield14- Domain: generic15- Governance profile: standard1617## Technology Stack1819- (no manifest — generic enterprise defaults apply)2021---2223## Non-Negotiable Coding Rules2425# Golden Rules Standard2627**Applies To:** All projects, all languages, all domains28**Enforced By:** `code-reviewer` agent, CI/CD hooks, `security-auditor` agent29**Status:** Non-negotiable3031---3233## The 12 Golden Rules3435These rules apply to every line of code committed to any EEIK-managed project. They are not preferences — violation of a BLOCKER rule prevents merge.3637---3839### Rule 1 — Constructor Injection Only4041**No `@Autowired` on fields. All injected fields are `final`.**4243```java44// ❌ VIOLATION — field injection45@Service46public class OrderService {47 @Autowired48 private OrderRepository orderRepository;49}5051// ✅ CORRECT — constructor injection52@Service53public class OrderService {54 private final OrderRepository orderRepository;5556 public OrderService(OrderRepository orderRepository) {57 this.orderRepository = orderRepository;58 }59}60```6162**Why:** Fields cannot be `final`. Cannot test without Spring context. Dependencies are invisible.6364---6566### Rule 2 — No Hardcoded Secrets6768**No credentials, API keys, passwords, or AWS account IDs in source code.**6970```java71// ❌ VIOLATION72String apiKey = "sk-live-abc123...";73String dbPassword = "SuperSecret123";7475// ✅ CORRECT — environment variable or Secrets Manager76String apiKey = System.getenv("API_KEY");77// or via @Value, or SecretsManagerClient78```7980**Why:** Source code is version-controlled and shared. Secrets in code become public.8182---8384### Rule 3 — SLF4J, Not System.out8586**Use `log.info(...)` with parameterised messages. Never `System.out.println()`.**8788```java89// ❌ VIOLATION90System.out.println("Processing order: " + orderId);9192// ✅ CORRECT93log.info("Processing order id={}", orderId);94```9596**Why:** `System.out` bypasses the logging framework — no level control, no structured output, no MDC context.9798---99100### Rule 4 — No SELECT *101102**Always specify explicit column lists in SQL.**103104```sql105-- ❌ VIOLATION106SELECT * FROM orders WHERE customer_id = :customerId;107108-- ✅ CORRECT109SELECT id, customer_id, status, total_amount, created_at110FROM orders111WHERE customer_id = :customerId;112```113114**Why:** Schema additions silently increase payload size and break mapping. Query plans are harder to optimise.115116---117118### Rule 5 — Parameterised Queries Only119120**No SQL string concatenation. Use named parameters.**121122```java123// ❌ VIOLATION — SQL injection risk124String sql = "SELECT * FROM orders WHERE id = '" + orderId + "'";125126// ✅ CORRECT127String sql = "SELECT id, status FROM orders WHERE id = :orderId";128namedJdbcTemplate.queryForObject(sql, Map.of("orderId", orderId), rowMapper);129```130131**Why:** String concatenation enables SQL injection. Non-negotiable security rule.132133---134135### Rule 6 — java.time Only (Java projects)136137**No `java.util.Date`, `java.util.Calendar`, or `java.sql.Timestamp`.**138139```java140// ❌ VIOLATION141Date now = new Date();142Calendar cal = Calendar.getInstance();143144// ✅ CORRECT145Instant now = Instant.now();146LocalDate today = LocalDate.now();147ZonedDateTime zonedNow = ZonedDateTime.now(ZoneId.of("Europe/London"));148```149150**Why:** `Date` and `Calendar` are mutable, non-thread-safe, and poorly designed. `java.time` is ISO 8601-correct.151152---153154### Rule 7 — jakarta.* in Spring Boot 3.x (Java projects)155156**No `javax.*` imports in Spring Boot 3.x code.**157158```java159// ❌ VIOLATION in Spring Boot 3.x160import javax.persistence.Entity;161import javax.validation.constraints.NotNull;162163// ✅ CORRECT164import jakarta.persistence.Entity;165import jakarta.validation.constraints.NotNull;166```167168**Why:** Spring Boot 3.x requires Jakarta EE 10. `javax.*` causes `ClassNotFoundException` at runtime.169170---171172### Rule 8 — Conventional Commits173174**All commit messages follow `type(scope): description` format.**175176```177# ❌ VIOLATION178"fix stuff"179"wip"180"updated OrderService"181182# ✅ CORRECT183feat(orders): add order cancellation endpoint184fix(payments): handle null amount in authorisation185chore(deps): upgrade Spring Boot to 3.3.0186test(orders): add Testcontainers integration test for cancellation187```188189**Types:** `feat`, `fix`, `refactor`, `test`, `chore`, `docs`, `perf`, `ci`, `build`, `revert`190191---192193### Rule 9 — No Partial Implementations194195**Every committed method body is complete. No `// TODO implement this` in production code.**196197```java198// ❌ VIOLATION199public BigDecimal calculatePremium(Policy policy) {200 // TODO: implement premium calculation201 return null;202}203204// ✅ CORRECT — if not yet implementable, throw explicitly205public BigDecimal calculatePremium(Policy policy) {206 throw new UnsupportedOperationException(207 "Premium calculation not yet implemented — tracked in TD-042"208 );209}210```211212---213214### Rule 10 — No Empty Catch Blocks215216**Every catch block at minimum logs the exception.**217218```java219// ❌ VIOLATION220try {221 publishEvent(event);222} catch (Exception e) {223 // swallowed224}225226// ✅ CORRECT227try {228 publishEvent(event);229} catch (Exception e) {230 log.error("Failed to publish event type={} id={}: {}",231 event.getType(), event.getId(), e.getMessage(), e);232}233```234235---236237### Rule 11 — No Thread.sleep() in Tests238239**Use Awaitility for async assertions.**240241```java242// ❌ VIOLATION243Thread.sleep(2000);244assertThat(orderRepository.findById(id)).isPresent();245246// ✅ CORRECT247await().atMost(5, SECONDS).until(() ->248 orderRepository.findById(id).isPresent()249);250```251252---253254### Rule 12 — Optional.get() Only with Guard255256**Never call `Optional.get()` without a preceding `isPresent()` or use `orElseThrow()`.**257258```java259// ❌ VIOLATION260Order order = orderRepository.findById(id).get(); // NoSuchElementException risk261262// ✅ CORRECT263Order order = orderRepository.findById(id)264 .orElseThrow(() -> new OrderNotFoundException(id));265```266267---268269## Enforcement270271| Severity | Rules | Gate |272|----------|-------|------|273| BLOCKER (pre-merge) | 2 (no secrets), 5 (SQL injection) | CI security scan |274| BLOCKER (code review) | 1, 3, 4, 6, 7, 9, 10, 12 | `code-reviewer` agent |275| MAJOR (code review) | 8, 11 | `code-reviewer` agent |276277Rules 1–12 are checked by the `code-reviewer` agent on every PR review.278279280---281282## Capability packs (engineering intelligence available)283284| Pack | Focus |285|---|---|286| `agent-harness` | Generic, enterprise-grade agent runtime conformance |287| `ai-engineering` | Agentic AI engineering — agent design, LangGraph, RAG, prompt engineering, evaluation |288| `angular` | Angular engineering capability pack — Angular 17+ standalone components, Signals API, OnPu… |289| `architecture` | Enterprise architecture capability pack providing solution design, ADR authoring, NFR anal… |290| `aws` | AWS cloud engineering capability pack — CDK, security, tagging, cost, deployment |291| `banking` | Banking domain — payments, risk, and PSD2 / Basel III / PCI-DSS compliance |292| `belgium-insurance` | Belgium insurance domain capability pack — Branch 21/23/26 product rules, FSMA/NBB regulat… |293| `chaos-engineering` | Chaos & resilience engineering — hypothesis-driven fault-injection experiments, blast-radi… |294| `containers` | Containerisation — Dockerfiles, ECS Fargate, and container runtime standards |295| `core` | Foundational capability pack — cross-cutting agents, standards, and workflows for all proj… |296| `data-engineering` | Data pipeline engineering capability pack |297| `delivery` | Delivery — sprint planning, release management, and branching / CI-CD standards |298| `finops` | Cloud FinOps — cost visibility, allocation/tagging, rightsizing, commitment discounts (RI/… |299| `go` | Go engineering — cloud-native services, standard-library HTTP, table-driven tests, and idi… |300| `governance` | Enterprise governance — architecture reviews, security reviews, PRR, AI governance, compli… |301| `healthcare` | Healthcare domain — FHIR / HL7, HIPAA / GDPR health-data compliance, clinical data |302| `insurance` | Insurance domain — claims, underwriting, and Solvency II / GDPR compliance |303| `java` | Enterprise Java engineering capability pack for Spring Boot 3.x / Java 21 |304| `modernization` | Legacy modernization — COBOL / RPG / IBM i analysis and strangler-fig migration |305| `node` | Node.js / TypeScript backend — NestJS & Fastify services, strict TypeScript, Zod validatio… |306| `openshift` | Red Hat OpenShift and Kubernetes engineering capability pack |307| `platform-engineering` | Platform engineering — internal developer platforms (IDP), golden paths / paved roads, sel… |308| `python` | Python engineering — FastAPI, Pydantic, pytest, and type-annotated services |309| `react` | React engineering capability pack — Next.js 14 App Router, Server Components, TanStack Que… |310| `retail` | Retail & e-commerce domain — catalog, cart/checkout, order management, inventory, pricing/… |311312Activate the packs your `project-manifest.yaml` selects with `eeik activate --apply`; each materialises313its agents and standards into `.claude/`.314315## Standards enforced316317`ai-governance`, `angular`, `api-standard`, `architecture-principles`, `aws`, `branching-standard`, `cicd`, `containers`, `data-engineering`, `estimation-standard`, `event-driven`, `fastapi`, `golden-rules`, `graphql`, `integration-standard`, `java`, `java-standard`, `mainframe`, `modernization-patterns`, `nfr-standard`, `observability-baseline`, `python`, `react-standard`, `security-baseline`, `spring-standard`, `sql`, `testing`318319Standards live in `.claude/standards/` (and `capability-packs/<pack>/standards/`). They define the320CORRECT/WRONG patterns the golden rules summarise.321322## Approved patterns323324- `agentic-supervisor-pattern`325- `java-outbox-pattern`326327See `knowledge/patterns/` for the full write-ups and `knowledge/anti-patterns/` for what to avoid.328329---330331## Specialist agents332333Route work to the right specialist (guidance lives in `.claude/agents/`):334335| Agent | Use for |336|---|---|337| `a2a-engineer` | Use for designing and implementing Agent-to-Agent (A2A) communication protocols, multi-agent orchestration sys… |338| `ai-engineer` | Use for designing and implementing generative AI applications: RAG pipelines, LLM integrations, Bedrock agents… |339| `ai-governance-officer` | Use for AI governance reviews, model risk assessments, ethical AI audits, and producing model cards, AI risk r… |340| `angular-coverage-checker` | Use for analysing Angular Istanbul/Karma coverage reports, identifying uncovered branches in components and se… |341| `angular-developer` | Use for ticket-scoped Angular feature delivery: standalone components, services, reactive forms, lazy routes, … |342| `angular-tester` | Use for generating Jasmine/TestBed spec files for Angular standalone components and services |343| `arb-reviewer` | Use for Architecture Review Board (ARB) gate reviews: validating designs against enterprise standards, assessi… |344| `architect` | Use for system design, architectural pattern validation, ADR authoring, bounded context reviews, API contract … |345| `autogen-engineer` | Use for designing and implementing multi-agent systems with Microsoft AutoGen: conversation patterns, GroupCha… |346| `aws-architect` | Use for AWS cloud architecture design, Well-Architected reviews, CDK stack skeletons, cost estimates, and scal… |347| `aws-deploy-helper` | Use for AWS deployment tasks: ECS Fargate service deployments, Lambda updates, CDK deploy commands, deployment… |348| `business-analyst` | Use for translating requirements into OpenAPI contracts, Gherkin acceptance criteria, data models, and event s… |349| `cdk-terraform-helper` | Use for producing AWS CDK TypeScript constructs and Terraform HCL modules |350| `ci-engineer` | Use for CI/CD pipeline design, GitHub Actions workflow authoring, build optimisation, test parallelisation, an… |351| `code-reviewer` | Use for structured pull request reviews with severity labels [BLOCKER]/[MAJOR]/ [MINOR]/[NIT] |352| `containerisation-helper` | Use for Docker and container-related tasks: writing Dockerfiles, docker-compose files, multi-stage builds, con… |353| `coverage-enforcer` | Use for multi-stack coverage gap analysis (Java + Angular) and generating targeted tests to close gaps |354| `crewai-engineer` | Use for designing and implementing multi-agent systems with CrewAI: crew composition, agent role definition, t… |355| `data-engineer` | Use for data pipeline implementation: Kafka producer/consumer setup, Apache Spark jobs, dbt model authoring, A… |356| `data-scientist` | Use for data science tasks: exploratory data analysis, feature engineering, model training and evaluation, sta… |357| `dba-advisor` | Use for database design and operational guidance: Flyway/Liquibase migration authoring, query plan analysis, i… |358| `devsecops-engineer` | Use for DevSecOps pipeline integration: SAST/DAST tooling, secrets scanning, container vulnerability scanning,… |359| `enterprise-architect` | Use for TOGAF-aligned enterprise architecture artifacts: capability maps, value streams, technology lifecycle … |360| `estimator` | Use for bottom-up effort estimation: producing P50/P80/P90 estimates for features, epics, and technical tasks |361| `ibmi-modernization-expert` | Use for IBM i (AS/400) modernisation tasks: analysing RPG IV / RPGLE / CL programs, mapping IBM i business log… |362| `incident-handler` | Use for incident management: declaring incidents, coordinating response, producing live status updates, and dr… |363| `jacoco-coverage-tester` | Use for JaCoCo XML/HTML report analysis, identifying uncovered lines and branches in business logic, and gener… |364| `java-developer` | Use for ticket-scoped Java Spring Boot implementation work: services, controllers, repositories, DTOs, and Map… |365| `java-tech-lead` | Use for Java PR gating, standards enforcement, tech debt classification, and framework-level decisions on Spri… |366| `java-tester` | Use for generating complete Java test suites: JUnit 5 unit tests, Spring Boot slice tests (@WebMvcTest, @DataJ… |367| `kubernetes-engineer` | Use for Kubernetes and Helm workloads: Helm chart authoring, RBAC configuration, NetworkPolicy design, Horizon… |368| `langraph-engineer` | Use for designing and implementing stateful multi-agent workflows with LangGraph: graph-based agent orchestrat… |369| `local-deploy-helper` | Use for local development environment setup and troubleshooting: starting services with docker-compose, config… |370| `mcp-engineer` | Use for designing and implementing Model Context Protocol (MCP) servers and clients: tool definitions, resourc… |371| `ml-engineer` | Use for ML engineering tasks: building and optimising ML training pipelines, feature stores, model serving inf… |372| `mlops-engineer` | Use for MLOps platform design and implementation: model registry management, drift monitoring, automated retra… |373| `modernization-expert` | Use for mainframe and legacy application modernisation: COBOL-to-Java migration strategy, legacy Spring 4/5 to… |374| `ops-engineer` | Use for operational tasks: CloudWatch dashboard design, runbook authoring, alert configuration, capacity plann… |375| `performance-engineer` | Use for detecting N+1 queries, unbounded result sets, resource leaks, Angular rendering bottlenecks, and scala… |376| `project-tracker` | Use for project status tracking, sprint planning support, dependency mapping, and delivery health reporting |377| `python-developer` | Use for ticket-scoped Python implementation work: FastAPI services, Django applications, data scripts, CLI too… |378| `rca-agent` | Use for post-incident Root Cause Analysis: conducting 5-Whys analysis, producing RCA reports, identifying syst… |379| `react-developer` | Activate for React tasks: functional components, hooks, React Query, Zustand/Redux Toolkit state, Next.js App … |380| `security-auditor` | Use for OWASP Top 10 security reviews, vulnerability analysis, and producing severity-rated findings with reme… |381| `senior-developer` | Use for full-stack Java and Angular implementation spanning both backend and frontend layers |382| `spring-security-engineer` | Activate for Spring Security tasks: OAuth2/OIDC configuration, JWT validation, method security (@PreAuthorize)… |383| `sre-engineer` | Use for SRE practice implementation: SLI/SLO definition, error budget management, toil identification, reliabi… |384| `technical-writer` | Use for technical documentation tasks: API documentation, architecture guides, onboarding docs, runbooks, ADRs… |385| `test-quality-enforcer` | Use for auditing test suites for anti-patterns (empty assertions, mocking SUT, Thread.sleep, flaky patterns) a… |386| `tester` | Use for comprehensive test strategy and generating full test pyramid coverage for any stack |387388---389390## Repository Layout391392```393.claude/ Claude Code configuration (agents, commands, hooks)394capability-packs/ Intelligence packs — read these for standards395knowledge/ Patterns, anti-patterns, ADRs, lessons learned396generators/ Project generators397eeik/ Engine: validate, activate, generate-adapters, lock398templates/ Code templates399```400401## Before Writing Code4024031. Read `capability-packs/core/standards/golden-rules.md`4042. Check `knowledge/patterns/` for existing patterns4053. Check `knowledge/anti-patterns/` for what to avoid4064. Identify the bounded context (domain, application, infrastructure, web)4075. State acceptance criteria before generating408409## Commit Message Format410411All commits must follow Conventional Commits:412```413type(scope): description414415Types: feat | fix | refactor | test | docs | chore | ci | perf | security416```417418## Test Requirements419420- Unit tests for all domain logic421- Integration tests for all repository/adapter classes422- No `Thread.sleep()` — use Awaitility423- No `Optional.get()` without guard — use `orElseThrow()`424425---426427## Sub-directory Context428429- `src/main/java/` → Java/Spring Boot source. See `capability-packs/java/`430- `src/test/` → Tests. See `capability-packs/java/standards/`431- `infrastructure/`→ CDK/Terraform IaC. See `capability-packs/aws/`432- `frontend/` → Angular/React. See relevant capability pack433
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| doubts-suplab/eeik-bootstrap.clinerules/golden-rules.md · 1 | Cline rules | gitsecuritydo-not | 61/100 | today | |
| doubts-suplab/eeik-bootstrap.clinerules/project.md · 1 | Cline rules | teststylegit | 63/100 | today | |
| doubts-suplab/eeik-bootstrap.cursor/rules/architecture.mdc · 1 | Cursor rules | do-not | 52/100 | today | |
| doubts-suplab/eeik-bootstrap.cursor/rules/capabilities.mdc · 1 | Cursor rules | teststylegit | 58/100 | today | |
| doubts-suplab/eeik-bootstrap.cursor/rules/golden-rules.mdc · 1 | Cursor rules | gitsecuritydo-not | 61/100 | today | |
| doubts-suplab/eeik-bootstrap.cursor/rules/python.mdc · 1 | Cursor rules | lint-formatstyletypesapi+1 | 77/100 | today | |
| doubts-suplab/eeik-bootstrap.cursor/rules/security.mdc · 1 | Cursor rules | security | 39/100 | today | |
| doubts-suplab/eeik-bootstrap.github/copilot-instructions.md · 1 | Copilot instructions | lint-formatstyletesting-strategygit+2 | 54/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/a2a-protocol.instructions.md · 1 | Copilot instructions | styleagent-behaviour | 48/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/ai-governance.instructions.md · 1 | Copilot instructions | stylearchdo-notagent-behaviour | 61/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/angular.instructions.md · 1 | Copilot instructions | teststyletypestesting-strategy+4 | 69/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/architecture-governance.instructions.md · 1 | Copilot instructions | testlint-formatstylegit+4 | 65/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/autogen.instructions.md · 1 | Copilot instructions | typessecurityagent-behaviour | 50/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/aws-architecture.instructions.md · 1 | Copilot instructions | styletypessecurityperformance | 58/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/aws-data-ml-ai.instructions.md · 1 | Copilot instructions | deployment | 54/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/cdk-terraform.instructions.md · 1 | Copilot instructions | teststylearchtypes+2 | 96/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/cicd.instructions.md · 1 | Copilot instructions | stylesecuritydeploymentdo-not+1 | 65/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/containerisation.instructions.md · 1 | Copilot instructions | buildstylesecuritydo-not | 77/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/crewai.instructions.md · 1 | Copilot instructions | styleagent-behaviour | 48/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/data-engineering.instructions.md · 1 | Copilot instructions | teststyletypesgit+5 | 69/100 | today |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| n8n-io/n8npackages/@n8n/agents/AGENTS.md · 201k | AGENTS.md | buildteststylearch+3 | 100/100 | 14 days ago | |
| duckduckgo/content-scope-scriptsspecial-pages/AGENTS.md · 70 | AGENTS.md | buildteststylearch+3 | 100/100 | 14 days ago | |
| deepseek-ai/deepseek-harnessnative/landlock-run/AGENTS.md · 104k | AGENTS.md | setupteststylearch+3 | 100/100 | today | |
| code-yeongyu/oh-my-openagentpackages/web/AGENTS.md · 68k | AGENTS.md | setupbuildtestlint-format+6 | 100/100 | 13 days ago | |
| TryGhost/Ghoste2e/AGENTS.md · 55k | AGENTS.md | setupteststylearch+2 | 100/100 | today | |
| vllm-project/vllmAGENTS.md · 89k | AGENTS.md | setuptestlint-formatstyle+5 | 100/100 | 14 days ago | |
| mui/material-uiAGENTS.md · 99k | AGENTS.md | setupbuildtestlint-format+9 | 100/100 | 14 days ago | |
| elastic/elasticsearchx-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ml/AGENTS.md · 78k | AGENTS.md | buildtestlint-formatstyle+2 | 100/100 | 14 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/doubts-suplab-eeik-bootstrap-agents)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.