Skip to content

feat: make release command language-agnostic and add TDD skill#11

Merged
fdematos merged 1 commit intomainfrom
feat/language-agnostic-release-and-tdd-skill
Jan 25, 2026
Merged

feat: make release command language-agnostic and add TDD skill#11
fdematos merged 1 commit intomainfrom
feat/language-agnostic-release-and-tdd-skill

Conversation

@fdematos
Copy link
Contributor

Summary

  • Release command: Removed Node.js dependencies, now uses Git tags as the source of truth for versioning. Auto-detects version files for multiple languages (Node.js, Python, Rust, PHP, Ruby, Go).
  • TDD skill: Added new tdd skill for Test-Driven Development workflow guidance.

Changes

command/release.md

  • Use git describe --tags instead of node -p "require('./package.json').version"
  • Fallback to 0.0.0 if no tags exist (instead of reading package.json)
  • Auto-detect version files based on project type

skill/tdd/SKILL.md (new)

  • TDD workflow: Requirement Synthesis → Test Specification → Implementation
  • Mandatory rules: No Test No Code, Black-Box Testing
  • Right-sized testing guidance (Unit, Integration, E2E)
  • Explicit exceptions list

@opencode-agent
Copy link
Contributor

Code Review Comments

command/release.md

  1. Line 7: The fallback to 0.0.0 is good, but consider adding a check for valid semver format in the git tag output to avoid potential issues with malformed tags.

  2. Line 40-46: The auto-detection of version files is a great improvement. However, the implementation should handle cases where multiple version files exist (e.g., both package.json and pyproject.toml in a polyglot repo). Consider adding a priority order or user confirmation for such cases.

  3. Line 46: For Go projects, since there's no version file, consider adding guidance on how the version should be communicated (e.g., through module version or documentation).

skill/tdd/SKILL.md

  1. Line 15: "Requirement Synthesis" is a good step, but consider adding a sub-step to validate requirements with the user before proceeding to test writing.

  2. Line 21: The "No Test, No Code" rule is excellent. However, consider adding a note about how to handle legacy codebases where tests might not exist yet.

  3. Line 35-39: The exceptions list is comprehensive. Consider adding a note about documenting exceptions in commit messages or pull requests for traceability.

General Comments

  • The changes align well with the goal of making the release command language-agnostic and adding TDD guidance.
  • The TDD skill document is well-structured and provides clear guidelines for implementation.
  • Consider adding examples or templates for the TDD workflow to make it more actionable for users.

Potential Bugs

  • In command/release.md, line 7-8: The git commands might fail in repositories with no commits or tags. Consider adding error handling or user-friendly messages for these edge cases.

  • In command/release.md, line 40-46: The auto-detection logic might not handle edge cases like missing files or permission issues. Consider adding validation steps before attempting to update files.

Suggestions for Improvement

  • Add a section in command/release.md about handling pre-release versions (e.g., v1.0.0-alpha) and how they should be treated in the version bump logic.

  • In skill/tdd/SKILL.md, consider adding a section on how to handle flaky tests or tests that are difficult to write due to external dependencies.

  • For both files, consider adding more examples or templates to illustrate the concepts and workflows described.

New%20session%20-%202026-01-25T11%3A48%3A16.912Z
opencode session  |  github run

@fdematos fdematos merged commit 14f0893 into main Jan 25, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments