agentsclimarketplace

Draft

Skill devnomad-byte/techneering/skills/draft

Propose a new change with all artifacts generated in one step. Use when the user wants to describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.From its SKILL.md

Install
npx -y skills add devnomad-byte/techneering --skill draft

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 13 stars13 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

8.0 KB, ~1.9k tokens by cl100k_base, as published. Nobody here has run it

Draft a Change

Create a complete Techneering change — generate all specification artifacts in one step. Read project context and spark conclusions (if any), then produce: proposal → specs → design → tasks.

Core Principle

UNDERSTAND BEFORE BUILDING.
Do NOT proceed without understanding what the user wants to build.

Steps

Step 1: Understand the Request

If the user's request is unclear, ask what they want to build. Derive a kebab-case name (e.g., "add user authentication" → add-user-auth).

If spark conclusions exist in the conversation, read them as input.

Step 2: Initialize Project Workspace (First Time Only)

Check if techneering/ directory exists at the project root. If not, create:

techneering/
  ├── config.yaml        # project context and rules
  ├── specs/             # main specification docs
  ├── changes/           # active changes
  └── archive/           # archived changes

Generate config.yaml:

schema: spec-driven

context: |
  # TODO: fill in project context (tech stack, framework, database, deployment environment, etc.)

coding_conventions:
  naming:
    files: ""              # kebab-case / PascalCase / camelCase / snake_case
    classes: ""            # PascalCase (Java/TS class) / snake_case (Ruby/Python)
    functions: ""          # camelCase / snake_case / PascalCase
    constants: ""          # UPPER_SNAKE / camelCase / PascalCase
    variables: ""          # camelCase / snake_case
  structure:
    pattern: ""            # feature-based / layered / mvc / modular / monorepo / hexagonal
    source_dir: ""         # src/ / lib/ / app/ / internal/
    test_dir: ""           # tests/ / __tests__/ / test/ / src/test/
  patterns:
    error_handling: ""     # exceptions / Result type / error codes / try-catch
    dependency_injection: "" # constructor / annotations / manual / module system
    api_style: ""          # REST / GraphQL / gRPC / message-queue
    data_access: ""        # ORM / query-builder / raw-sql / repository-pattern
    imports: ""            # alias / relative / absolute / package-based
  formatting:
    indent: ""             # 2 spaces / 4 spaces / tab
    quotes: ""             # single / double
    semicolons: ""         # true / false
    trailing_comma: ""     # es5 / all / none
    max_line_length: ""    # 80 / 100 / 120 / none

quality_standards:
  # standard sources (stackable, ordered by priority)
  sources:
    - ""                   # primary standard source (see options table below)

  # custom rules (override or supplement the sources)
  custom_rules: []

  # review severity level
  severity: "strict"       # strict (Critical must fix) / normal (Important should fix) / relaxed (inform only)

rules:
  proposal: []
  specs: []
  design: []
  tasks: []

Standard source options table (by tech stack):

Tech stackRecommended sourceNotes
Javaali-taishan-javaAlibaba Java Development Manual (Taishan edition)
Javagoogle-javaGoogle Java Style Guide, common for international projects
Pythonali-taishan-pythonAlibaba Python Development Manual
Pythonpep8PEP 8 Style Guide (can stack with ali-taishan-python)
GogofmtGo official formatting style (mandatory)
JavaScriptstandardjsNo-semicolon style, concise
JavaScriptairbnb-jsAirbnb JS Style Guide, widely used
TypeScriptgoogle-jsGoogle JS/TS Style Guide
Vuevue-officialVue official style guide
Reactreact-airbnbAirbnb React/JSX Style Guide
Generalclean-codeClean Code principles (can stack with any)
GeneralsolidSOLID design principles

Filling coding_conventions:

  • If spark conclusions contain convention analysis → fill from spark output
  • If no spark (lightweight path) → run simplified detection: scan project structure, sample 2-3 files, check for config files (.editorconfig, .prettierrc, eslint)
  • If new project with no code → leave empty, recommend framework defaults during design.md generation

Filling quality_standards:

  • Detect tech stack from project files:
    • pom.xml / build.gradle → Java → recommend ali-taishan-java
    • requirements.txt / pyproject.toml / setup.py → Python → recommend ali-taishan-python + pep8
    • go.mod → Go → recommend gofmt
    • package.json → check dependencies:
      • Has vue → prompt user to choose (vue-official recommended)
      • Has react → prompt user to choose (react-airbnb recommended)
      • Has typescript → prompt user to choose (google-js recommended)
      • Otherwise → prompt user to choose (airbnb-js or standardjs)
    • No detected stack → leave empty, prompt user
  • If spark conclusions contain quality_standards choice → fill from spark output
  • Always ask user to confirm the recommended sources before writing config.yaml

Step 3: Create Change Directory

Create:

techneering/changes/<name>/
  ├── .tn.yaml     # { schema: spec-driven, created: YYYY-MM-DD }
  ├── proposal.md
  ├── specs/
  ├── design.md
  └── tasks.md

If the change already exists, ask: continue it or create a new one?

Step 4: Generate Artifacts in Dependency Order

Read techneering/config.yaml for context and rules. Generate artifacts following the dependency graph:

proposal → specs (depends on proposal)
         → design (depends on proposal)
         → tasks (depends on specs + design)

proposal.md

Sections: Why + What Changes + Capabilities (New/Modified) + Impact. Focus on "why" not "how".

specs/*.md

One spec file per capability. Use delta operations:

  • ADDED Requirements: New capabilities
  • MODIFIED Requirements: Changed behavior (full updated content)
  • REMOVED Requirements: Deprecated features (include Reason + Migration)
  • RENAMED Requirements: Name changes (FROM:/TO: format)

Each requirement: ### Requirement: <name> with SHALL/MUST language. Each scenario: #### Scenario: <name> with WHEN/THEN format.

design.md

Sections: Context + Goals/Non-Goals + Decisions + Risks/Trade-offs. Focus on architecture and approach.

tasks.md

Checkbox format: - [ ] X.Y Task description. Group under numbered headings. Each task completable in one session.

Step 5: Show Summary

## Change Created: <name>

### Artifacts
- proposal.md — [brief summary]
- specs/<capability>.md — [N requirements]
- design.md — [key decisions]
- tasks.md — [N tasks in M groups]

### What's Next
Ready to implement? Run `tn:forge` to start.

Quick Reference

DimensionKey point
Output4 artifacts under techneering/changes/<name>/
Dependency orderproposal → specs + design → tasks
First-time useAuto-creates techneering/ directory + config.yaml
Path placeholderAlways use techneering/changes/<name>/
Duplicate changeDetect existing change, ask continue or new

Next Step

When done:

  • Normal case → invoke tn:forge to start implementation
  • User wants to isolate the workspace first → invoke tn:isolate, then tn:forge
  • User wants to keep refining the proposal → stay in draft, edit artifacts
  • User requests stop → end the current flow

Guardrails

  • Create ALL artifacts needed for implementation
  • Always read dependency artifacts before creating a new one
  • Context and rules from config.yaml are constraints for YOU, not content for the files
  • If context is critically unclear, ask the user — but prefer making reasonable decisions
  • If a change with that name already exists, ask if user wants to continue it or create a new one
  • Verify each artifact file exists after writing before proceeding to next
  • Unified path placeholder: always use techneering/changes/<name>/

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.