From 3fb14be887be4759ab8a572b04fe9dfcb05d60fd Mon Sep 17 00:00:00 2001 From: Raphael Pothin Date: Sun, 25 Jan 2026 19:00:09 +0000 Subject: [PATCH 01/13] feat: add refinement plan for version 0.1.0 with user experience improvements --- plans/v0-1-0_REFINEMENT_PLAN.md | 367 ++++++++++++++++++++++++++++++++ 1 file changed, 367 insertions(+) create mode 100644 plans/v0-1-0_REFINEMENT_PLAN.md diff --git a/plans/v0-1-0_REFINEMENT_PLAN.md b/plans/v0-1-0_REFINEMENT_PLAN.md new file mode 100644 index 0000000..3bc5918 --- /dev/null +++ b/plans/v0-1-0_REFINEMENT_PLAN.md @@ -0,0 +1,367 @@ +# Refinement Plan for Version 0.1.0 + +I have provisioned a separated repository to test ghcralph in isolation from source code getting it directly from npm registry and discovered a few things I would like your help to refine to be able to push a new enhanced version of the package to npm registry. + +## Initial Context + +You will find below the context of the repository created to test ghcralph in isolation. Small complementary detail: the tests have been run from a GitHub Codespace using a devcontainer. + +### Devcontainer + +```json +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/typescript-node +{ + "name": "Node.js & TypeScript", + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + "image": "mcr.microsoft.com/devcontainers/typescript-node:4-24-bookworm", + "features": { + "ghcr.io/devcontainers/features/copilot-cli:1": {}, + "ghcr.io/devcontainers/features/github-cli:1": {} + }, + "customizations": { + "vscode": { + "extensions": [ + "yzhang.markdown-all-in-one", + "GitHub.copilot" + ] + } + }, + + // Features to add to the dev container. More info: https://containers.dev/features. + // "features": {}, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Use 'postCreateCommand' to run commands after the container is created. + "postCreateCommand": "npm install -g ghcralph" + + // Configure tool-specific properties. + // "customizations": {}, + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" +} +``` + +### Plan + +Same as [the one for the calculator test scenario](../test/integration/calculator/PLAN.md). + +## Findings + +### Finding 1: Init does not provide interactive experience by default + +``` +@rpothin āžœ /workspaces/ghc-ralph-cli-demo (main) $ ghcralph init + +šŸ¤– GitHub Copilot Ralph - Initialize + +Configuration: + Plan source: local + Max iterations: 10 + Max tokens: 100,000 + Model: gpt-4.1 + Auto commit: true + Branch prefix: ghcralph/ + +Created: + /workspaces/ghc-ralph-cli-demo/.ghcralph + +āœ” GitHub Copilot Ralph initialized successfully! + +ℹ Run ghcralph run --task "Your task" to start. +``` + +The `ghcralph init` command works generting the configuration json file under the expected location with the defined default values. +But even has the creator of the CLI, I was a bit surprised it does not provide an interactive experience by default, which could be improved to enhance user-friendliness. + +To enhance the user experience, I would suggest to add an interactive mode by default when running `ghcralph init`, +- first presenting the default values to the user, and asking if they want to keep them or change them, +- then, if they want to change them, prompting for each configuration value one by one, +- finally, summarizing the configuration values to be written in the configuration file and asking for confirmation + +For Plan Source, Model (list of models available using GitHub Copilot CLI) and Auto commit, please provide a list of options to choose from. + +### Finding 2: Run file and plan parameters confusing + +``` +@rpothin āžœ /workspaces/ghc-ralph-cli-demo (main) $ ghcralph run --help +Usage: ghcralph run [options] + +Execute an agentic coding loop + +Options: + -t, --task Task to execute (inline) + -f, --file Read task from file + -p, --plan Read tasks from a Markdown plan file + -g, --github Use GitHub Issues as plan source + -l, --label