packages/knowledge-hub/dataset/.skills/capability/assess-stack/SKILL.md
Assess tech stack using resolution cascade (Argument > Adoption > Assessment). Lifecycle-spanning: bootstrap (full eval), implementation (add dependency), review (detect unlisted). Version tracking. Composes /record-decision. Idempotent.
npx skillsauth add foomakers/pair assess-stackInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Evaluate and decide on the technology stack: languages, frameworks, runtime, database, and libraries — all with version tracking. Follows the resolution cascade and operates across the entire project lifecycle.
| Argument | Required | Description |
| --------- | -------- | ---------------------------------------------------------------------------------------- |
| $choice | No | Technology to assess (e.g. [email protected], node@20, [email protected]). Format: name@version. |
| $mode | No | Lifecycle mode: bootstrap, implementation, review. Auto-detected if omitted. |
| Skill | Type | Required |
| ------------------ | ---------- | -------------------------------------------- |
| /record-decision | Capability | Yes — records stack decision as ADL (or ADR) |
Full stack evaluation. Used when no tech stack is defined yet. Evaluates language, framework, runtime, database, key libraries. Produces the initial tech-stack.md with all core sections and versions.
Add or update a single dependency. Used when /implement detects a new dependency or developer wants to add a library. Validates compatibility with existing stack, adds to tech-stack.md with version, records decision.
Detect and evaluate unlisted dependencies. Used when /review finds a dependency in code that isn't in tech-stack.md. Presents approve/reject options to developer. If approved, adds to stack and records decision.
$mode provided?$choice provided AND tech-stack.md has populated core sections → implementation (adding to existing stack)$choice provided AND tech-stack.md missing or empty → bootstrap (initial setup with override)$choice AND tech-stack.md missing or empty → bootstrap (full assessment)$choice AND tech-stack.md populated → check caller context
/review → reviewCheck: Is $choice provided?
Skip: If not provided, go to Path B.
Act (implementation mode): Validate compatibility:
Parse $choice as name@version.
Check existing tech-stack.md for conflicts:
If conflict detected, warn developer:
Compatibility issue:
$choiceconflicts with existing stack.
- Conflict: [description]
- Options: (a) resolve conflict and proceed, (b) reject addition
Act (bootstrap mode with choice): Confirm the choice and proceed to Step 3.
Verify: Choice validated. Proceed to Step 3.
Check: Does adoption/tech/tech-stack.md exist with populated core sections?
Skip: If not populated or missing, go to Path C.
Act: Read current adoption. Present summary:
Tech stack already adopted. Core sections populated. [Summary of key technologies with versions]
Check: Does a corresponding decision record exist?
Act: If decision record missing, compose /record-decision to backfill.
Verify: Adoption and decision record consistent. Done — exit skill.
Act: For each core category, evaluate options:
Act: For each category, use guideline evaluation criteria:
Act: Present full stack recommendation with versions:
Tech Stack Recommendation:
| Category | Technology | Version | Rationale | |----------|-----------|---------|-----------| | Language | [name] | [vX.Y] | [reason] | | ... | ... | ... | ... |
Act: Confirm the addition:
Adding to tech stack: $choice
- Category: [auto-detected or ask]
- Compatible: [yes/no — details]
- Rationale: [developer provides or auto-inferred]
Verify: Developer approves.
Act: Present finding to developer:
Unlisted dependency detected:
[name@version]Found in: [file(s)] Not listed in tech-stack.md.Options:
- Approve — add to tech stack with version + record decision
- Reject — flag for removal from implementation
Act: If approved → treat as implementation mode addition.
Act: If rejected → report back to caller (e.g. /review marks as CHANGES-REQUESTED).
Verify: Developer decision captured.
/record-decision:
$type: non-architectural, $topic: tech-stack-initial, $summary: "Initial tech stack adopted: [key technologies]"$type: non-architectural, $topic: stack-add-[name], $summary: "[name]@[version] added to tech stack — [rationale]"$type: non-architectural, $topic: stack-approve-[name], $summary: "[name]@[version] approved during review — added to tech stack"[tool] v[X.Y.Z] or [tool]@[X.Y.Z].| Section | Owner | Other Skills |
| --------------------------- | ---------------- | ----------------------------------- |
| Core (language, framework, runtime, DB) | /assess-stack | Read-only for others |
| Monorepo, bundling, release | /assess-stack | Read-only for others |
| Linting, formatting, hooks | /assess-stack | Read-only for others |
| CLI tooling, markdown/docs | /assess-stack | Read-only for others |
| Testing | /assess-testing| /assess-stack reads, never writes |
| AI | /assess-ai | /assess-stack reads, never writes |
ASSESSMENT COMPLETE:
├── Domain: Tech Stack
├── Mode: [Bootstrap | Implementation | Review]
├── Path: [Argument Override | Adoption Exists | Full Assessment]
├── Decision: [technology@version — or full stack summary]
├── Adoption: [tech-stack.md — written | confirmed | updated | entry added]
├── Record: [ADL path — created | exists | backfilled]
└── Status: [Complete | Confirmed existing | Approved | Rejected]
When composed by /bootstrap:
/bootstrap invokes /assess-stack during Phase 2 with $mode: bootstrap. May pass $choice for pre-selected stack./bootstrap includes adoption and ADL changes in the next commit.When composed by /implement:
/implement detects new import/dependency → invokes /assess-stack with $choice: [name@version], $mode: implementation./implement HALTs.When composed by /review:
/review detects unlisted dependency → invokes /assess-stack with $choice: [name@version], $mode: review./review includes as CHANGES-REQUESTED finding.When invoked independently:
/record-decision is not installed, warn and skip decision recording.tech-stack.md is the registry of approved technologies. Only listed technologies are approved. Unlisted technologies detected during review trigger /assess-stack evaluation.development
Creates or updates a Product Requirements Document through structured template analysis, hypothesis-driven information gathering, and iterative review. Idempotent — detects existing PRD and offers selective section update.
development
Reviews a pull request through a structured 6-phase process: validation, technical review, adoption compliance, completeness check, decision, and optional merge with parent cascade. Composes /verify-quality, /verify-done, /record-decision, /assess-debt (required) and /verify-adoption, /assess-stack (optional with graceful degradation). Output follows the code review template. Idempotent — re-invocation resumes from incomplete phases.
tools
Refines a user story from Todo to Refined state through structured phases: selection, requirements analysis (Given-When-Then), technical analysis, sprint readiness, and documentation. Section-level idempotency — detects partial refinement and resumes. Composes /write-issue for PM tool updates.
testing
Breaks a refined user story into implementation tasks. Task-level idempotency: detects existing tasks and creates only missing ones. Appends condensed Technical Analysis + Task Breakdown (checklist, Dependency Graph, AC Coverage table, detailed tasks) to the story body. Composes /write-issue to update the story issue body. Tasks are documented inline in the story — no separate task issues are created.