Cleanup#75
Open
Bullish-Design wants to merge 54 commits into
Open
Conversation
…nvironment-variables Add .envrc to configure direnv and devenv
…per-command Add Typer hello CLI script
…tory-and-devenv.nix Add .devman/devenv.nix and .envrc to make .devman the authoritative devenv
patched with a devman cli wrapper?
…-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
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
…-devmanfinder Add DevmanFinder tests
…y-with-test-cases tests: add DevmanConfig unit tests for env loading and Path conversion
…nd-failure Add `hello` CLI command
…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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.