Go to file
moilanik 0af84c24c7 feat(helm): expand guidelines for namespace agnosticism and values hygiene
Audit checklist:
- add explicit grep-based checks for hardcoded namespaces, names, required+default conflicts, unused values keys
- scope name checks to templates/ only — hardcoded names in values.yaml are legitimate
- fix required error message example to include what to set and where

New sections:
- values.yaml Is Not Rendered — fixed names in values.yaml for subchart coordination are correct
- Never Hardcode Namespace / Release Name — hard rule with IaC principle rationale
- Glue Configuration pattern — documented exception for subchart coordination (e.g. Tempo + MinIO)

values.yaml hygiene rewrite:
- two purposes: static baseline + umbrella glue (wiring subcharts into one unit)
- goal is a short, minimal file identical across all installations
- installation-specific values belong exclusively in values.<instance>.yaml
- forbidden: empty placeholders, defaults for rarely-changed values, required-value entries

required vs defaults rewrite:
- sensible default → hardcode in template, not in values.yaml
- must-vary value → required with descriptive message, no entry in values.yaml
- | default forbidden
- required error messages must say exactly what to set and where

KISS addition:
- hardcoded values are the starting point, not a compromise
- parameterize only when developer asks, and into values.<instance>.yaml
2026-03-10 09:29:21 +02:00
.ai feat(helm): expand guidelines for namespace agnosticism and values hygiene 2026-03-10 09:29:21 +02:00
docs feat: configurable docs folders + mandatory instructions rules 2026-03-06 09:42:48 +02:00
templates feat: complete apply.sh v1 — summary, guard, dev root install, updated docs 2026-03-03 11:19:35 +02:00
.ai-superpower feat: complete apply.sh v1 — summary, guard, dev root install, updated docs 2026-03-03 11:19:35 +02:00
.gitignore feat: add clean-code, clean-architecture and helm skills; fix .gitignore 2026-03-04 09:54:07 +02:00
apply.md feat: add --update flag to refresh instructions without full setup 2026-03-04 10:00:11 +02:00
apply.sh refactor(apply.sh): extract functions + expand clean-code skill 2026-03-09 09:35:27 +02:00
config.yaml feat: configurable docs folders + mandatory instructions rules 2026-03-06 09:42:48 +02:00
README.md feat: configurable docs folders + mandatory instructions rules 2026-03-06 09:42:48 +02:00

ai-superpower

AI instructions scatter across a large number of projects. Maintaining them inside each project individually is not practical — a single change requires manual updates everywhere. This repo solves that: a central .ai/ folder is installed in your dev root, and every project gets a symlink to it. A git pull + re-run of apply.sh updates all projects instantly.

AI requires strong guidance to support human workflows rather than override them. Treat its outputs as zero-trust: the human reviews everything and must be willing to put their name on what the AI produced.

Good instructions are what make that possible — they allow AI to produce output that is high in quality and volume, in a way that feels natural and pleasant to work with, while keeping the human in control of the workflow.

Principles

  • Generic vs. project-specific.ai/ instructions know nothing about individual projects. Project knowledge lives in each project's own docs/ai-context.md.
  • Symlink, never copy — every project's .ai/ symlinks directly to the ai-superpower repo. Edits land in git immediately — no sync step, no drift.
  • Modular loading — AI loads only the relevant instruction files per task, not everything at once.
  • One change, all projects — edit any instruction file from any project, commit to ai-superpower, and all projects pick it up on next git pull or curl | bash.
  • Version controlled — instructions are managed in git. Changes are tracked, history is preserved, and rolling back is straightforward.

Install

Run this from your dev root — the folder where all your projects live:

# Full setup: clone/pull + scan all projects + create/refresh docs templates
curl -fsSL https://gitea.nikos-dev.keskikuja.site/niko/ai-superpower/raw/branch/main/apply.sh | bash

# Update instructions only: pull latest .ai/ files, skip all project setup
curl -fsSL https://gitea.nikos-dev.keskikuja.site/niko/ai-superpower/raw/branch/main/apply.sh | bash -s -- --update

This script must be run via curl | bash from your dev root. Running it directly will fail with instructions to use the curl command.

What it does:

  1. Clones (or updates) this repo into dev_root/ai-superpower/
  2. Scans for all projects (up to 4 levels deep) and creates a .ai symlink in each pointing to ai-superpower/.ai/
  3. Adds .ai to each project's .gitignore
  4. Creates ai-context.md and architecture.md templates in the project's docs folder (docs/, documentation/, doc/ — whichever exists) if the files are missing; asks first if no docs folder exists. The list of folder names is configured in config.yaml.
  5. Writes a .ai-superpower.version file to your dev root with the run timestamp and commit hash
dev_root/             ← run curl from here
├── ai-superpower/    ← cloned here automatically
│   └── .ai/         ← instruction source (git tracked)
├── project-a/
│   └── .ai → dev_root/ai-superpower/.ai/   ← symlink
├── project-b/
│   └── .ai → dev_root/ai-superpower/.ai/   ← symlink
└── some-folder/
    └── project-c/             ← nested projects found automatically (maxdepth 4)
        └── .ai → dev_root/ai-superpower/.ai/

Any edits made to .ai/ instruction files from within any project land directly in the ai-superpower/ git working tree — visible with git diff and committable without a sync step.

See docs/apply-requirements.md for the full requirements and docs/apply-usecases.md for a detailed flow diagram.

AI setup

The AI must be instructed to always read .ai/ai-root-instructions.md at the start of every session. In your AI assistant's system prompt or custom instructions, add:

Always read .ai/ai-root-instructions.md at the start of every conversation and confirm with ✅ ai-root-instructions.md READ.

Verify that every AI response begins with this confirmation. If it does not, the instructions have not been loaded.

Repository structure

ai-root-instructions.md is the entry point — the first file the AI reads in any project. It routes to the relevant instruction files based on the task at hand.

ai-superpower/
└── .ai/                         ← source + symlink target (git tracked)
    ├── ai-root-instructions.md  ← entry point, read first
    └── instructions/
        ├── behavior/            ← how AI approaches its work
        ├── skills/              ← task-specific guides (git, docs, diagrams)
        └── constraints/         ← what AI must not do

dev_root/
└── project-x/
    ├── .ai → dev_root/ai-superpower/.ai/   ← symlink
    └── docs/
        ├── ai-context.md        ← project-specific context, never overwritten once customised
        └── architecture.md      ← project architecture, never overwritten once customised

Templates for ai-context.md and architecture.md are deployed automatically to any project that has a docs/ folder. They contain a factory-reset marker on line 1 — as long as that marker is present, apply.sh will refresh the file on every run. Once you (or the AI) edits the file and removes the marker, the file is yours and will never be touched again.