Stack-Aware Intelligence System
Auto-detects project tech stack and loads domain-relevant context for reviews, audits, planning, and work.
Architecture (4 Layers)
Layer 0: Context Router — computeContextManifest() decides WHAT to load
Layer 1: Detection Engine — detectStack() scans manifests for evidence
Layer 2: Knowledge Skills — 20 reference docs (languages, frameworks, databases, libraries, patterns)
Layer 3: Enforcement Agents — 13 specialist reviewers with unique finding prefixes
How It Works
Detection: detectStack() scans manifest files (pyproject.toml, package.json, Cargo.toml, composer.json) to identify languages, frameworks, databases, and libraries with a confidence score (0.0-1.0).
Routing: computeContextManifest() classifies changed files into domains (backend, frontend, database, testing, infra, docs), then selects which reference docs and agents to load based on the detected stack and task type.
Loading: Selected reference docs are passed as Read() directives to workers and reviewers. Only domain-relevant docs are loaded (e.g., a frontend-only PR won't load Python/SQLAlchemy skills).
Enforcement: Specialist agents (python-reviewer, fastapi-reviewer, design-system-compliance-reviewer, etc.) are conditionally summoned when their stack is detected AND domain matches, producing findings with unique prefixes (PY-, FAPI-, etc.).
Key Functions
detectStack(repoRoot)
See detection.md for the full algorithm.
Input: Repository root path
Output: { primary_language, languages[], frameworks[], databases[], libraries[], tooling[], confidence, evidence_files[] }
computeContextManifest(task_type, file_scope, detected_stack, task_description)
See context-router.md for the full algorithm.
Input: Workflow type (review/audit/plan/work/forge), changed files, detected stack, task description
Output: { domains, skills_to_load[], skills_excluded{}, agents_selected[], loading_strategy }
Supported Stacks
See stack-registry.md for all supported languages, frameworks, databases, and libraries.
| Category |
Supported |
| Languages |
Python, TypeScript, Rust, PHP |
| Frameworks |
FastAPI, Django, Laravel, SQLAlchemy, React, Vue.js, Next.js, Vite |
| Databases |
PostgreSQL, MySQL |
| Libraries |
Pydantic, dry-python/returns, Dishka, Pinia, Vue Router |
| Patterns |
TDD, DDD, DI |
Configuration
# talisman.yml
stack_awareness:
enabled: true # Master toggle (default: true)
confidence_threshold: 0.5 # Min confidence to activate specialists
max_stack_ashes: 3 # Max specialist Ashes per review
# Override detected stack (monorepos, detection failures)
# override:
# primary_language: python
# frameworks: [fastapi, sqlalchemy]
# Custom project-specific rules
# custom_rules:
# - path: ".claude/skills/my-patterns/SKILL.md"
# domains: [backend]
# workflows: [review, work]
# stacks: [python]
References
- detection.md — Stack detection algorithm
- stack-registry.md — Supported stacks registry
- context-router.md — Smart context loading algorithm
- languages/ — Language profiles (Python, TypeScript, Rust, PHP)
- frameworks/ — Framework checklists (FastAPI, Django, Laravel, SQLAlchemy, React, Vue.js, Next.js, Vite)
- databases/ — Database patterns (PostgreSQL, MySQL)
- libraries/ — Library patterns (Pydantic, Returns, Dishka)
- patterns/ — Cross-cutting patterns (TDD, DDD, DI)
1---2name: stacks3description: Stack-Aware Intelligence — auto-detects project tech stack (Python, TypeScript, Rust, PHP) from manifest files, routes context to domain-relevant skills, and selects specialist review agents. Covers detection, context routing, knowledge profiles, and enforcement agents. Trigger keywords: stack detection, context router, language profile, framework checklist, specialist agent, stack awareness.4---56# Stack-Aware Intelligence System78Auto-detects project tech stack and loads domain-relevant context for reviews, audits, planning, and work.910## Architecture (4 Layers)1112```13Layer 0: Context Router — computeContextManifest() decides WHAT to load14Layer 1: Detection Engine — detectStack() scans manifests for evidence15Layer 2: Knowledge Skills — 20 reference docs (languages, frameworks, databases, libraries, patterns)16Layer 3: Enforcement Agents — 13 specialist reviewers with unique finding prefixes17```1819## How It Works20211. **Detection**: `detectStack()` scans manifest files (pyproject.toml, package.json, Cargo.toml, composer.json) to identify languages, frameworks, databases, and libraries with a confidence score (0.0-1.0).22232. **Routing**: `computeContextManifest()` classifies changed files into domains (backend, frontend, database, testing, infra, docs), then selects which reference docs and agents to load based on the detected stack and task type.24253. **Loading**: Selected reference docs are passed as `Read()` directives to workers and reviewers. Only domain-relevant docs are loaded (e.g., a frontend-only PR won't load Python/SQLAlchemy skills).26274. **Enforcement**: Specialist agents (python-reviewer, fastapi-reviewer, design-system-compliance-reviewer, etc.) are conditionally summoned when their stack is detected AND domain matches, producing findings with unique prefixes (PY-, FAPI-, etc.).2829## Key Functions3031### detectStack(repoRoot)3233See [detection.md](references/detection.md) for the full algorithm.3435**Input**: Repository root path36**Output**: `{ primary_language, languages[], frameworks[], databases[], libraries[], tooling[], confidence, evidence_files[] }`3738### computeContextManifest(task_type, file_scope, detected_stack, task_description)3940See [context-router.md](references/context-router.md) for the full algorithm.4142**Input**: Workflow type (review/audit/plan/work/forge), changed files, detected stack, task description43**Output**: `{ domains, skills_to_load[], skills_excluded{}, agents_selected[], loading_strategy }`4445## Supported Stacks4647See [stack-registry.md](references/stack-registry.md) for all supported languages, frameworks, databases, and libraries.4849| Category | Supported |50|----------|-----------|51| Languages | Python, TypeScript, Rust, PHP |52| Frameworks | FastAPI, Django, Laravel, SQLAlchemy, React, Vue.js, Next.js, Vite |53| Databases | PostgreSQL, MySQL |54| Libraries | Pydantic, dry-python/returns, Dishka, Pinia, Vue Router |55| Patterns | TDD, DDD, DI |5657## Configuration5859```yaml60# talisman.yml61stack_awareness:62 enabled: true # Master toggle (default: true)63 confidence_threshold: 0.5 # Min confidence to activate specialists64 max_stack_ashes: 3 # Max specialist Ashes per review6566 # Override detected stack (monorepos, detection failures)67 # override:68 # primary_language: python69 # frameworks: [fastapi, sqlalchemy]7071 # Custom project-specific rules72 # custom_rules:73 # - path: ".claude/skills/my-patterns/SKILL.md"74 # domains: [backend]75 # workflows: [review, work]76 # stacks: [python]77```7879## References8081- [detection.md](references/detection.md) — Stack detection algorithm82- [stack-registry.md](references/stack-registry.md) — Supported stacks registry83- [context-router.md](references/context-router.md) — Smart context loading algorithm84- [languages/](references/languages/) — Language profiles (Python, TypeScript, Rust, PHP)85- [frameworks/](references/frameworks/) — Framework checklists (FastAPI, Django, Laravel, SQLAlchemy, React, Vue.js, Next.js, Vite)86- [databases/](references/databases/) — Database patterns (PostgreSQL, MySQL)87- [libraries/](references/libraries/) — Library patterns (Pydantic, Returns, Dishka)88- [patterns/](references/patterns/) — Cross-cutting patterns (TDD, DDD, DI)