Skip to content

Cleanup#75

Open
Bullish-Design wants to merge 54 commits into
mainfrom
claude/refactor-devman-library-kNiPo
Open

Cleanup#75
Bullish-Design wants to merge 54 commits into
mainfrom
claude/refactor-devman-library-kNiPo

Conversation

@Bullish-Design

Copy link
Copy Markdown
Owner

No description provided.

Bullish-Design and others added 30 commits January 27, 2026 23:07
…nvironment-variables

Add .envrc to configure direnv and devenv
…tory-and-devenv.nix

Add .devman/devenv.nix and .envrc to make .devman the authoritative devenv
…-cli-commands

Add Typer CLI, pyproject config, and pytest smoke test
…l-for-devman

Add pyproject.toml for devman package (PEP 621, setuptools, Typer CLI)
…r-languages.python-configuration

Use `languages.python` venv (3.13) and update devenv packages
…ect.toml-and-verify-settings

Remove nested pyproject.toml in src/devman
…ripts

Update devenv scripts to run devman after `uv sync`
…est-entrypoint

Add `test` entrypoint to .devman/devenv.nix to run pytest
…h-output-directory

Modularize test process and add output-dir handling
devenv.nix commands from the testing/tweaking of those commands. Use
justfile as the intermediary, so jujutsu remains responsiblility as
source of truth. Can spin small branches to validate/evaluate script
output and results without having to suffer the nix/devenv build loop.
Will serve as a sort of "wishful building" process, where I define the
functionality up front, then proceed to built it out until it functions
as desired.
…refactor-devenv.nix

Route devenv scripts through Justfile and add `just` to devenv packages
Bullish-Design and others added 24 commits January 28, 2026 18:50
footguns, seeign if thay can be bundled in a wrapper.
…ss-in-config.py

Add DevmanConfig settings model and load_config
…l-dependencies

Update project and dev dependencies
…ss-to-cli.py

Add DevmanFinder to CLI for locating .devman configuration directories
…-and-add-run-command

Add `run` CLI command to locate .devman and invoke `devenv`
…o-cli.py

Add config command for managing devman settings
…y-with-test-cases

tests: add DevmanConfig unit tests for env loading and Path conversion
…h-installation-instructions

Add initial devman README
Implement a copier template system for devman including:
- Pydantic models for copier questions (str, bool, int, float, choice, yaml, json)
- Task models for pre/post-copy commands with conditional execution
- CopierConfig root schema with YAML round-trip serialization
- Template reference resolution (local file paths and git URLs)
- Template structure validation
- `devman new` CLI command to create projects from copier templates
- UV standalone scripts for validation and example generation
- Comprehensive test suite (40 tests) covering schemas, templates,
  CLI integration, and end-to-end workflow

https://claude.ai/code/session_01Cp8miS8u22WHvNj4hp6eHA
…ates-TicvA

Add copier template system for project creation
Introduce layered architecture (domain, application, infrastructure) with
Railway-Oriented Programming error handling using the `result` library.

Key changes:
- Add domain layer with value objects (ProjectRoot, DevmanDirectory,
  ValidationResult), structured error types, and DevmanFinder service
- Add application layer with use cases (FindDevman, RunDevenv,
  ValidateTemplate)
- Refactor TemplateReference to use model_validator and Result-based
  create() factory method
- Add parse_question() for type-safe question parsing from raw dicts
- Add validate_questions_structured() returning ValidationResult
- Fix TaskList duplicate branch bug in to_yaml_format()
- Centralize version constant via __version__
- Add subprocess error handling for devenv (FileNotFoundError,
  CalledProcessError)
- Maintain full backward compatibility with legacy APIs
- All 64 tests pass with 80% coverage

https://claude.ai/code/session_017yvaii6ymGhds4Mh29fnAB
…hitecture-GsTY3

Refactor to layered architecture with Railway-Oriented Programming
- Replace unused TemplateSource/ConfigRepository protocols with
  CommandExecutor, FileReader, and SubprocessExecutor implementation
- Extract magic strings to constants.py (DEVMAN_DIR_NAME, DEVENV_COMMAND,
  CONFIG_DIR, CONFIG_FILE)
- Move templates.py to domain/templates.py for proper layer ownership
- Fix ChoiceQuestion type discrimination: use type="choice" instead of
  type="str", enabling Pydantic discriminated unions
- Inject CommandExecutor into RunDevenvUseCase (removes direct subprocess
  dependency, enables testing)
- Add CreateProjectUseCase to encapsulate template instantiation logic
  previously embedded in CLI
- Implement ConfigRepository for config persistence (removes hardcoded
  paths from CLI)
- Make DevmanFinder.find() require start_path parameter (removes IO from
  domain service)
- Delete deprecated legacy methods (validate_questions dict-based,
  validate_structure dict-based, validate dict-based)
- Remove legacy DevmanFinder wrapper class from cli.py
- Update all tests for refactored APIs (67 tests passing)

https://claude.ai/code/session_01NTc7HFHpCZniit6yZSUbRe
Bullish-Design added a commit that referenced this pull request Jan 29, 2026
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.

2 participants