Skip to content

Commit d6f8ba7

Browse files
Emphasize mandatory dogfooding/user testing for CLI changes (#1760)
* Initial plan * Emphasize mandatory dogfooding/user testing for CLI changes Add a "Generally Important Instruction" in AGENTS.md requiring dogfooding and user testing for any CLI command changes. Strengthen usethis-cli-modify skill (v1.2 → v1.3) with: - Bold mandatory labels on dogfooding/user testing procedure steps - New "Dogfooding and user testing are mandatory" section explaining why unit tests alone are insufficient - Split "Adding, removing, or renaming" into separate bullets for clearer discoverability when adding new commands Agent-Logs-Url: https://github.com/usethis-python/usethis-python/sessions/fd68fe02-245e-4df0-b122-5a5a38112d9d Co-authored-by: nathanjmcdougall <18602289+nathanjmcdougall@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: nathanjmcdougall <18602289+nathanjmcdougall@users.noreply.github.com>
1 parent ac4e607 commit d6f8ba7

2 files changed

Lines changed: 15 additions & 4 deletions

File tree

.agents/skills/usethis-cli-modify/SKILL.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Modify the usethis CLI layer (commands, options, help text) and kee
44
compatibility: usethis, Python, typer, markdown
55
license: MIT
66
metadata:
7-
version: "1.2"
7+
version: "1.3"
88
---
99

1010
# Modifying the CLI
@@ -14,18 +14,28 @@ metadata:
1414
1. Make your changes to the CLI layer (command functions, options, help text, or app registration).
1515
2. Update the CLI documentation to reflect every user-facing change.
1616
3. Run the affected interface-level tests.
17-
4. Use the `usethis-cli-dogfood` skill to validate the command against the real repo.
18-
5. Use the `usethis-cli-user-test` skill to verify the happy path in a fresh temporary project.
17+
4. **Dogfood the command** — use the `usethis-cli-dogfood` skill to run the command against this repository. This step is mandatory.
18+
5. **User-test the command** — use the `usethis-cli-user-test` skill to verify the happy path in a fresh temporary project. This step is mandatory.
1919

2020
## When this skill applies
2121

2222
Use this skill whenever you modify anything under the `_ui` package, including:
2323

24-
- Adding, removing, or renaming a command
24+
- Adding a new command or subcommand
25+
- Removing or renaming a command
2526
- Changing a command's options, arguments, or defaults
2627
- Changing help text or command descriptions
2728
- Modifying how commands are registered on the app
2829

30+
## Dogfooding and user testing are mandatory
31+
32+
Steps 4 and 5 are not optional — they are how you verify that your changes actually work for real users. Unit tests alone are not sufficient because they exercise code paths in isolation and cannot catch problems that arise from real project structures, real dependency resolution, or real file system interactions.
33+
34+
- **Dogfooding** (step 4) catches edge cases from a complex real-world project with existing configuration, dependencies, and non-trivial structure.
35+
- **User testing** (step 5) catches issues with initial setup, missing files, or assumptions about pre-existing configuration that only a mature project would have.
36+
37+
If either test reveals a problem, fix the code, write a regression test, and re-run both tests before considering the change complete.
38+
2939
## Update the CLI documentation
3040

3141
**Every user-facing CLI change requires a documentation update.** The documentation is manually written and is not auto-generated from the code, so it will not update itself.

AGENTS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -483,6 +483,7 @@ External skills can be installed if they are not present — see the `usethis-sk
483483

484484
- ALWAYS check the [Function Reference](#function-reference) section above before implementing any utility logic — mature, tested functions already exist for common operations such as reading dependencies, detecting tools, and printing console output.
485485
- ALWAYS use possibly relevant agent skills when they are available. Eagerly use skills, if in doubt, assume a skill is relevant.
486+
- ALWAYS dogfood and user-test CLI changes. After implementing or modifying any CLI command, use the `usethis-cli-dogfood` skill to run the command against this repo and the `usethis-cli-user-test` skill to verify the happy path in a fresh project. Both are mandatory — never skip them, even for seemingly simple changes. Use the `usethis-cli-modify` skill for guidance on the full CLI change workflow.
486487
- ALWAYS use the `usethis-skills-modify` skill when modifying any agent skill (`SKILL.md` file). Do not edit skill files without it — it enforces version bumping, scope checking, and content quality guidelines. Similarly, ALWAYS use `usethis-skills-create` when creating a new skill.
487488
- ALWAYS use `find-skills` to research new skill capabilities if there are difficult tasks, tasks in an unfamiliar domain, if you believe there is a lack of clarity or direction around precisely how to proceed, or if you get stuck or find something surprisingly challenging. When using this skill, please be sure to use the `usethis-skills-external-install` skill when deciding to install a new external skill.
488489
- ALWAYS consider the `usethis-python-test-full-coverage` to be relevant: if your task involves

0 commit comments

Comments
 (0)