housebroken-cli 0.2.0__tar.gz → 0.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (21) hide show
  1. {housebroken_cli-0.2.0 → housebroken_cli-0.2.2}/PKG-INFO +1 -1
  2. {housebroken_cli-0.2.0 → housebroken_cli-0.2.2}/pyproject.toml +1 -1
  3. {housebroken_cli-0.2.0 → housebroken_cli-0.2.2}/skills/housebroken/SKILL.md +35 -6
  4. housebroken_cli-0.2.2/src/housebroken/__init__.py +1 -0
  5. housebroken_cli-0.2.0/src/housebroken/__init__.py +0 -1
  6. {housebroken_cli-0.2.0 → housebroken_cli-0.2.2}/.gitignore +0 -0
  7. {housebroken_cli-0.2.0 → housebroken_cli-0.2.2}/LICENSE +0 -0
  8. {housebroken_cli-0.2.0 → housebroken_cli-0.2.2}/README.md +0 -0
  9. {housebroken_cli-0.2.0 → housebroken_cli-0.2.2}/bin/housebroken +0 -0
  10. {housebroken_cli-0.2.0 → housebroken_cli-0.2.2}/hatch_build.py +0 -0
  11. {housebroken_cli-0.2.0 → housebroken_cli-0.2.2}/scripts/check-ai-policy.sh +0 -0
  12. {housebroken_cli-0.2.0 → housebroken_cli-0.2.2}/scripts/comment-census.sh +0 -0
  13. {housebroken_cli-0.2.0 → housebroken_cli-0.2.2}/scripts/diff-defaults.sh +0 -0
  14. {housebroken_cli-0.2.0 → housebroken_cli-0.2.2}/scripts/distinct-outside.sh +0 -0
  15. {housebroken_cli-0.2.0 → housebroken_cli-0.2.2}/scripts/file-pr.sh +0 -0
  16. {housebroken_cli-0.2.0 → housebroken_cli-0.2.2}/scripts/fork-hygiene.sh +0 -0
  17. {housebroken_cli-0.2.0 → housebroken_cli-0.2.2}/scripts/notes.sh +0 -0
  18. {housebroken_cli-0.2.0 → housebroken_cli-0.2.2}/scripts/pr-sweep.sh +0 -0
  19. {housebroken_cli-0.2.0 → housebroken_cli-0.2.2}/scripts/prior-art.sh +0 -0
  20. {housebroken_cli-0.2.0 → housebroken_cli-0.2.2}/scripts/verify-filed-pr.sh +0 -0
  21. {housebroken_cli-0.2.0 → housebroken_cli-0.2.2}/src/housebroken/cli.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: housebroken-cli
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: Agent-written pull requests that do not make a mess in someone else's house.
5
5
  Project-URL: Repository, https://github.com/lenamonj/housebroken
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "housebroken-cli"
7
- version = "0.2.0"
7
+ version = "0.2.2"
8
8
  description = "Agent-written pull requests that do not make a mess in someone else's house."
9
9
  dynamic = ["readme"]
10
10
  license = "MIT"
@@ -59,13 +59,20 @@ report it in one line and do not proceed to the next step.
59
59
  default, is a breaking change on a stable major, however wrong the old
60
60
  behavior looks. It becomes an issue that describes the behavior and offers
61
61
  the patch, never a pull request. Classify every patch before writing a
62
- test for it.
62
+ test for it. A finding whose only red evidence is a measurement, such
63
+ as peak memory or elapsed time, is a hold: a pull request needs a test
64
+ that fails on the default branch for a wrong value, a crash or an
65
+ out-of-bounds access, and "less memory" is not that test.
63
66
 
64
67
  4. **Prove it red first.**
65
68
  On a fresh clone of the upstream default branch, not the tree you found
66
69
  the bug in, write the test that fails. Run it and keep the failing output.
67
70
  Apply the patch. Run it again. Both results go into the pull request as
68
- the test itself; the body states the fact in one sentence.
71
+ the test itself; the body states the fact in one sentence. When the
72
+ patched function serves several public entry points or has several
73
+ branches, the test is a grid: every entry point through every branch,
74
+ plus the zero, identity and signed-boundary rows. A reviewer lists the
75
+ empty cells otherwise.
69
76
 
70
77
  5. **Run their CI, not yours.**
71
78
  Run the project's own test target on the fresh clone, and every gate its
@@ -82,7 +89,9 @@ report it in one line and do not proceed to the next step.
82
89
  comment in code that has none: run `housebroken census <clone root>` and
83
90
  compare the added-comment ratio with the file. The body is under 120 words,
84
91
  in the project's template if it has one, and says what was wrong, what the
85
- change does, and how it was verified. No tool footer, no session link, no
92
+ change does, and how it was verified; every sentence in it is something
93
+ you reproduced on the fresh clone in this session, never a line carried
94
+ from a journal. No tool footer, no session link, no
86
95
  co-author trailer, no typographic dashes. When a template asks whether AI
87
96
  was used, answer in one truthful sentence.
88
97
 
@@ -111,13 +120,31 @@ report it in one line and do not proceed to the next step.
111
120
  `housebroken verify owner/repo PR` re-derives from GitHub that the head is
112
121
  the intended commit, the diff is exactly the intended files, and CI
113
122
  settled. `housebroken sweep` lists every open pull request where the ball
114
- is in your court. Answer every maintainer comment the same day, in the
115
- user's voice, after reading the whole thread. Rework what is asked for as
116
- a second commit so the reviewer sees the change. When the maintainer is
123
+ is in your court. Before saying anything about a thread, read every
124
+ comment body, review and timeline event newer than your last own action;
125
+ a list of who commented is not a read, and a conversion to draft is a
126
+ review. Answer every maintainer comment the same day, in the user's
127
+ voice. Rework what is asked for as a second commit so the reviewer sees
128
+ the change. When the maintainer is
117
129
  right, concede in one sentence and let them close it. Never nudge a
118
130
  silent maintainer without the user's explicit word. After answering a
119
131
  review, record what the maintainer asked for with
120
132
  `housebroken notes owner/repo add "..."`.
133
+ Write the reply the way one maintainer writes to another. Lead with the
134
+ fact or the action, never with a verdict on the reviewer: no "you are
135
+ right", "good catch", "great point", "thanks for the feedback", no
136
+ apology, no restating their question, no closing summary or offer of
137
+ further help. A concession is the corrected fact followed by what
138
+ changed: "Every loader checks its read, so a truncated file fails on
139
+ main; the description is corrected." A disagreement is the command and
140
+ its result, without adjectives. An answer to a question is the answer
141
+ first and the evidence second. One to three sentences, no bullet list
142
+ under a paragraph's worth of content, no bold, no exclamation mark, no
143
+ handle unless the thread has several people. Offer closure as a plain
144
+ statement ("Fine to close."), and stop when the content stops.
145
+ Never post two replies to one repository in the same minute: space them
146
+ at least ten minutes apart, the one that matters most first, so a
147
+ maintainer's inbox does not show three answers stamped the same second.
121
148
 
122
149
  11. **Clean up.**
123
150
  `housebroken hygiene` deletes the fork branch of every merged or closed
@@ -130,6 +157,8 @@ report it in one line and do not proceed to the next step.
130
157
  finding, each passing every step above on its own. GitHub lets
131
158
  maintainers cap open pull requests from non-collaborators and counts
132
159
  agent-opened ones against that cap.
160
+ The same spacing applies to filing: pull requests and issues on one
161
+ repository go out at least ten minutes apart, the strongest first.
133
162
 
134
163
  13. **Write it down before you leave.**
135
164
  A run through the door ends with its ledger, not with the pull
@@ -0,0 +1 @@
1
+ __version__ = "0.2.1"
@@ -1 +0,0 @@
1
- __version__ = "0.2.0"
File without changes