Technology stack selection and configuration skill
Technology stack selection and configuration skill
Configures technology stack based on requirements and matches to available blueprints.
For each mentioned framework:
stack-capabilities.jsonSearch blueprints for best match:
for blueprint in blueprints:
if blueprint.primaryLanguage == requirements.primaryLanguage:
match_score = calculate_framework_match(blueprint, requirements)
if match_score > threshold:
return blueprint
Based on stack, suggest:
Present testing mode options to the user:
Select your testing mode:
BASIC MODES:
[ ] tdd-only - Test-Driven Development only
- Code-based unit tests with Given-When-Then structure
- Developer-focused, fast feedback
- No BDD artifacts
[ ] bdd-only - Behavior-Driven Development only
- Gherkin feature files with step definitions
- Stakeholder-readable specifications
- No separate unit tests
[ ] layered - TDD + BDD (Test Pyramid)
- Unit tests (TDD) for implementation details
- Acceptance tests (BDD) for business behavior
- Both maintained independently
TRANSLATION MODES:
[ ] bdd-drives-tdd - Outside-In Development
- Write BDD scenarios first
- Generate unit test stubs from scenarios
- Full traceability from scenario to tests
[ ] tdd-documents-bdd - Documentation Generation
- Write unit tests normally
- Generate feature files from tests
- Stakeholder docs from existing tests
[ ] synchronized - Bidirectional Sync
- Changes to either propagate to the other
- Single source of truth with dual views
- Full traceability and conflict detection
Based on selection, configure:
| Mode | TDD | BDD | Translation | Traceability | Practice | ||--|--|-|--|-| | tdd-only | ✓ | - | - | - | - | | bdd-only | - | ✓ | - | - | Three Amigos | | layered | ✓ | ✓ | - | Optional | Three Amigos | | bdd-drives-tdd | ✓ | ✓ | BDD→TDD | ✓ | Three Amigos | | tdd-documents-bdd | ✓ | ✓ | TDD→BDD | ✓ | - | | synchronized | ✓ | ✓ | Bidirectional | ✓ | Three Amigos |
Translation capabilities:
| Direction | Description | Use Case | |--|-|-| | BDD→TDD | Generate test stubs from scenarios | Outside-in development | | TDD→BDD | Generate features from tests | Legacy documentation | | Bidirectional | Keep both in sync | Single source of truth |
Traceability features:
Framework mapping by stack:
| Stack | TDD Framework | BDD Framework | |-||| | Python | pytest | behave, pytest-bdd | | TypeScript | jest, vitest | cucumber-js | | Java | JUnit | cucumber-jvm | | C# | NUnit, xUnit | SpecFlow | | Kotlin | JUnit, Kotest | cucumber-jvm |
Generate stack configuration object:
stack:
primaryLanguage: "{LANGUAGE}"
frameworks:
- name: "{FRAMEWORK}"
version: "{VERSION}"
tools:
testing: "{TEST_FRAMEWORK}"
linting: "{LINTER}"
formatting: "{FORMATTER}"
testingApproach:
mode: "{TESTING_MODE}" # tdd-only, bdd-only, layered, bdd-drives-tdd, tdd-documents-bdd, synchronized
tdd:
enabled: true|false
framework: "{TDD_FRAMEWORK}"
bdd:
enabled: true|false
framework: "{BDD_FRAMEWORK}"
featureDirectory: "features/"
stepDirectory: "features/steps/"
translation:
enabled: true|false
direction: "{DIRECTION}" # bdd-to-tdd, tdd-to-bdd, bidirectional
traceability:
enabled: true|false
reportFormat: "markdown" # markdown, json, html
blueprint: "{BLUEPRINT_ID}"
Example configurations by mode:
# bdd-drives-tdd mode
testingApproach:
mode: "bdd-drives-tdd"
tdd:
enabled: true
framework: "pytest"
bdd:
enabled: true
framework: "behave"
translation:
enabled: true
direction: "bdd-to-tdd"
traceability:
enabled: true
# synchronized mode
testingApproach:
mode: "synchronized"
tdd:
enabled: true
framework: "pytest"
bdd:
enabled: true
framework: "behave"
translation:
enabled: true
direction: "bidirectional"
traceability:
enabled: true
| Primary Language | Key Framework | Blueprint |
|||--|
| Python | FastAPI | python-fastapi |
| Python | Django | python-django |
| TypeScript | React | typescript-react |
| TypeScript | Next.js | typescript-nextjs |
| Java | Spring | java-spring |
| C# | .NET | csharp-dotnet |
| ABAP | (any) | sap-abap |
{directories.knowledge}/stack-capabilities.json{directories.blueprints}/*/blueprint.jsonThis skill should be used when strict adherence to the defined process is required.
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer