theslopmachine 0.4.2 → 0.4.3

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.
package/README.md CHANGED
@@ -37,7 +37,7 @@ The current engine is the lighter workflow line:
37
37
  - smaller always-loaded owner shell
38
38
  - smaller developer rulebook
39
39
  - richer phase-specific skills loaded when needed
40
- - bounded 2/3 developer-session model
40
+ - bounded 2-session developer-session model
41
41
  - `beads_rust` bootstrap path
42
42
 
43
43
  ## Requirements
@@ -66,13 +66,13 @@ npm pack
66
66
  This produces a tarball such as:
67
67
 
68
68
  ```bash
69
- theslopmachine-0.4.0.tgz
69
+ theslopmachine-0.4.3.tgz
70
70
  ```
71
71
 
72
72
  You can then install it globally with:
73
73
 
74
74
  ```bash
75
- npm install -g ./theslopmachine-0.4.0.tgz
75
+ npm install -g ./theslopmachine-0.4.3.tgz
76
76
  ```
77
77
 
78
78
  For local development instead of global install:
@@ -143,6 +143,7 @@ The expected high-level lifecycle is:
143
143
  8. final human decision
144
144
  9. remediation when needed
145
145
  10. submission packaging
146
+ 11. retrospective
146
147
 
147
148
  ## How It Is Intended To Operate
148
149
 
@@ -154,7 +155,7 @@ That means:
154
155
  - planning, scaffold, development, verification, hardening, remediation, and packaging load detailed skills only when needed
155
156
  - early and late phases do not carry each other's full instruction payloads all the time
156
157
 
157
- The v2 workflow also expects:
158
+ The current workflow also expects:
158
159
 
159
160
  - targeted reads over broad rereads
160
161
  - local and narrow verification during ordinary iteration
@@ -174,6 +175,70 @@ Examples:
174
175
  - web backend/fullstack: `docker compose up --build` and `./run_tests.sh`
175
176
  - mobile or desktop when Docker runtime is not the direct run path: `./run_app.sh` and `./run_tests.sh`
176
177
 
178
+ ## What It Does Well
179
+
180
+ - keeps the owner shell strict without carrying a giant monolith prompt
181
+ - loads detailed phase and activity skills only when they are actually needed
182
+ - uses a bounded 2-session model to reduce long-run context drag
183
+ - pushes prompt-fit, security, testing, and engineering-quality concerns earlier into planning and hardening
184
+ - standardizes runtime and broad-test expectations with `docker compose up --build` or `./run_app.sh` plus `./run_tests.sh`
185
+ - preserves strong packaging/report discipline with canonical files in `~/slopmachine/`
186
+
187
+ ## Installed Assets
188
+
189
+ The package installs:
190
+
191
+ - owner and developer agents
192
+ - phase and activity skills
193
+ - canonical evaluation and report templates in `~/slopmachine/`
194
+ - workflow bootstrap helper
195
+ - repo rulebook template
196
+ - session export utilities
197
+
198
+ Canonical files in `~/slopmachine/`:
199
+
200
+ - `backend-evaluation-prompt.md`
201
+ - `frontend-evaluation-prompt.md`
202
+ - `document-completeness.md`
203
+ - `engineering-results.md`
204
+ - `implementation-comparison.md`
205
+ - `quality-document.md`
206
+ - `retrospectives/`
207
+
208
+ ## Dependencies And Assumptions
209
+
210
+ - Node.js 18+ is required for the package CLI itself
211
+ - OpenCode must already be available on the machine
212
+ - git must be available
213
+ - `beads_rust` / `br` is installed or verified by `slopmachine setup`
214
+
215
+ Generated projects follow the original prompt and the existing repository first.
216
+
217
+ Default runtime/test wrapper expectations:
218
+
219
+ - Dockerized web backend/fullstack: `docker compose up --build` and `./run_tests.sh`
220
+ - non-web or non-Docker runtime cases: `./run_app.sh` and `./run_tests.sh`
221
+
222
+ `./run_tests.sh` is always the broad test wrapper.
223
+
224
+ ## Command Summary
225
+
226
+ Package CLI:
227
+
228
+ - `slopmachine setup`
229
+ - `slopmachine init`
230
+ - `slopmachine init -o`
231
+
232
+ Package validation:
233
+
234
+ - `npm run check`
235
+ - `npm pack`
236
+
237
+ Generated project conventions:
238
+
239
+ - `docker compose up --build` or `./run_app.sh`
240
+ - `./run_tests.sh`
241
+
177
242
  ## Files And Locations
178
243
 
179
244
  Main install locations:
package/RELEASE.md CHANGED
@@ -41,13 +41,13 @@ npm pack
41
41
  This should produce a tarball such as:
42
42
 
43
43
  ```bash
44
- theslopmachine-0.4.0.tgz
44
+ theslopmachine-0.4.3.tgz
45
45
  ```
46
46
 
47
47
  ## Inspect package contents
48
48
 
49
49
  ```bash
50
- tar -tzf theslopmachine-0.4.0.tgz
50
+ tar -tzf theslopmachine-0.4.3.tgz
51
51
  ```
52
52
 
53
53
  Check that the tarball includes:
@@ -67,7 +67,7 @@ Agent-integrity rule:
67
67
 
68
68
  ## Optimization Goal
69
69
 
70
- The main v2 target is:
70
+ The main target is:
71
71
 
72
72
  - less token waste
73
73
  - less elapsed time
@@ -174,18 +174,17 @@ Phase rules:
174
174
 
175
175
  ## Developer Session Model
176
176
 
177
- Use up to three bounded developer sessions:
177
+ Use up to two bounded developer sessions:
178
178
 
179
- 1. build session: planning, scaffold, development
180
- 2. stabilization session: integrated verification and hardening, only if needed
181
- 3. remediation session: evaluation-response remediation, only if needed
179
+ 1. develop session: planning, scaffold, development
180
+ 2. bugfix session: integrated verification, hardening, and remediation, only if needed
182
181
 
183
182
  Use `developer-session-lifecycle` for startup, resume detection, session consistency checks, and recovery.
184
183
  Use `session-rollover` only for planned transitions between those bounded developer sessions.
185
184
 
186
185
  Do not launch the developer during `P0` or `P1`.
187
186
 
188
- When the first build developer session begins in `P2`, start it in this exact order:
187
+ When the first develop developer session begins in `P2`, start it in this exact order:
189
188
 
190
189
  1. send `lets plan this <original-prompt>`
191
190
  2. wait for the developer's first reply
@@ -59,7 +59,7 @@ Optional startup inputs may include:
59
59
  6. wait only for the initial clarification approval before development starts
60
60
  7. ensure the parent project root has the required working structure, especially `../sessions/` and `../docs/`
61
61
  8. initialize the bounded developer-session slots
62
- 9. start the build developer session only after `P2` is ready to begin
62
+ 9. start the develop developer session only after `P2` is ready to begin
63
63
  10. send this exact first planning opener as the first message in that session: `lets plan this <original-prompt>`
64
64
  11. wait for the developer's first exchange
65
65
  12. send the approved clarification prompt as the second owner message in that same session
@@ -69,7 +69,7 @@ Optional startup inputs may include:
69
69
 
70
70
  The first bounded developer session must begin in this exact order:
71
71
 
72
- 1. owner starts the build developer session
72
+ 1. owner starts the develop developer session
73
73
  2. owner sends: `lets plan this <original-prompt>`
74
74
  3. developer responds
75
75
  4. owner sends the approved clarification prompt
@@ -138,11 +138,10 @@ Required project metadata fields in `../metadata.json` when relevant:
138
138
 
139
139
  ## Bounded session model
140
140
 
141
- Track up to three planned developer sessions:
141
+ Track up to two planned developer sessions:
142
142
 
143
- 1. build
144
- 2. stabilization
145
- 3. remediation
143
+ 1. develop
144
+ 2. bugfix
146
145
 
147
146
  Later session slots may remain unused if the workflow never needs them.
148
147
 
@@ -110,7 +110,7 @@ Selected-stack defaults:
110
110
  - for each major module, define how it integrates with existing modules and which shared contracts it must follow consistently
111
111
  - define verification plans that include cross-module scenarios and seam checks, not just isolated feature checks
112
112
  - surface real unresolved risks honestly
113
- - keep the plan aligned with current policy: owner-managed external docs, no `.env` files, junior-friendly repo-local README, and the v2 verification cadence
113
+ - keep the plan aligned with current policy: owner-managed external docs, no `.env` files, junior-friendly repo-local README, and the current verification cadence
114
114
 
115
115
  ## Exit target
116
116
 
@@ -9,8 +9,7 @@ Use this skill only when intentionally moving from one planned developer session
9
9
 
10
10
  ## Typical uses
11
11
 
12
- - build session -> stabilization session
13
- - stabilization session -> remediation session
12
+ - develop session -> bugfix session
14
13
 
15
14
  ## Rules
16
15
 
@@ -104,7 +104,7 @@ The final submission layout in the parent project root must be:
104
104
  - relocate screenshots and proof materials relevant to runtime behavior and major flows into parent-root `../submission/`
105
105
  - preserve parent-root `../sessions/` as the session artifact directory for converted workflow session exports
106
106
  - export all tracked workflow sessions before generating the final submission documents
107
- - after the session exports are complete, use the last evaluation session recorded in metadata when generating the final submission report content so the report answers can come from cached evaluation context instead of rebuilding that context from scratch
107
+ - after the session exports are complete, the owner should answer the final submission-document questions based on the recent review responses gathered across evaluation reports, remediation results, verification notes, and packaging checks
108
108
 
109
109
  ## Session export sequence
110
110
 
@@ -120,8 +120,8 @@ For each tracked session:
120
120
 
121
121
  Naming rule for converted files under `../sessions/`:
122
122
 
123
- - development-phase sessions become `develop-N.json`
124
- - hardening or remediation sessions become `bugfix-N.json`
123
+ - the develop session becomes `develop-N.json`
124
+ - the bugfix session becomes `bugfix-N.json`
125
125
 
126
126
  After those steps:
127
127
 
@@ -135,13 +135,13 @@ After those steps:
135
135
 
136
136
  After all session exports are complete:
137
137
 
138
- 1. recover the last evaluation session id from metadata
139
- 2. use that last evaluation session to answer the final submission-document questions from its cached context
140
- 3. generate the required final submission documents from that evaluation context plus the canonical `~/slopmachine/` reference files
138
+ 1. gather the recent review responses from evaluation reports, accepted triage notes, remediation outcomes, verification notes, and packaging checks
139
+ 2. answer the final submission-document questions from that gathered review evidence
140
+ 3. generate the required final submission documents from that gathered review evidence plus the canonical `~/slopmachine/` reference files
141
141
 
142
142
  Do not start generating the final submission documents before the session exports are complete.
143
- Do not create a new evaluation session for final report generation if the last evaluation session is still available.
144
- If the last evaluation session id is missing or unusable, stop and repair metadata/session recovery before continuing packaging.
143
+ Do not rely on one single cached evaluation session as the only source for final submission-document answers.
144
+ If the gathered review evidence is incomplete, stop and repair the missing evidence before continuing packaging.
145
145
 
146
146
  ## Required file moves
147
147
 
@@ -171,8 +171,8 @@ If the last evaluation session id is missing or unusable, stop and repair metada
171
171
  - confirm required screenshots have been relocated into parent-root `../submission/`
172
172
  - confirm parent-root metadata fields are populated correctly
173
173
  - confirm session export naming rules are followed under `../sessions/`:
174
- - `develop-N.json` for development-phase sessions
175
- - `bugfix-N.json` for hardening/remediation sessions
174
+ - `develop-N.json` for the develop session
175
+ - `bugfix-N.json` for the bugfix session
176
176
 
177
177
  ## Submission artifact and response contract
178
178
 
@@ -77,7 +77,7 @@ Use this skill after development begins whenever you are reviewing work, decidin
77
77
  - a broad gate is an owner-run integrated verification boundary, not every ordinary phase change
78
78
  - a phase change alone does not automatically require a broad gate unless that phase exit explicitly calls for one
79
79
  - a broad gate normally means some combination of full clean runtime proof, `./run_tests.sh`, and platform-appropriate UI/E2E evidence when UI-bearing flows exist
80
- - in v2, the workflow target is at most 3 broad owner-run verification moments across the whole cycle
80
+ - the workflow target is at most 3 broad owner-run verification moments across the whole cycle
81
81
  - ordinary planning, ordinary slice acceptance, and routine in-phase verification are not broad gates by default and should rely on targeted local verification unless the risk profile says otherwise
82
82
 
83
83
  For Dockerized web backend/fullstack projects, the default Docker cadence is:
@@ -1,45 +1,59 @@
1
- ## 5.1 Document Completeness
1
+ ## Delivery Completeness Template
2
+
3
+ Use this file as the structure reference for the delivery-completeness and hard-threshold submission outputs.
4
+
5
+ Do not copy sample-project content into the final document.
6
+ Replace every placeholder with evidence from the current delivered project.
7
+
8
+ ## Document completeness
2
9
 
3
10
  | Document Type | File Path | Completeness | Description |
4
11
  | :---- | :---- | :---- | :---- |
5
- | **User Instructions** | README.md | Complete | Includes functional features, installation steps, and usage guides |
6
- | **Testing Instructions** | TESTING.md | Complete | Test environment isolation and execution methods |
7
- | **Data Persistence Instructions** | DATA\_PERSISTENCE.md | Complete | Docker volume mounting and data protection |
12
+ | **User Instructions** | `<path>` | `<Complete/Partial/Missing>` | `<what is present and whether it is enough>` |
13
+ | **Testing Instructions** | `<path>` | `<Complete/Partial/Missing>` | `<how local and broad test paths are documented>` |
14
+ | **Runtime/Deployment Instructions** | `<path>` | `<Complete/Partial/Missing>` | `<how runtime startup is documented>` |
15
+ | **Other Required Project Docs** | `<path>` | `<Complete/Partial/Missing>` | `<other prompt-required or delivery-required docs>` |
8
16
 
9
- 5.2 Code Completeness
17
+ ## Code completeness
10
18
 
11
- | Module | Implementation Status | Description |
19
+ | Module / Area | Implementation Status | Description |
12
20
  | :---- | :---- | :---- |
13
- | **Configuration Management** | Complete | complaint\_system/settings.py |
14
- | **URL Routing** | Complete | complaint\_system/urls.py, main/urls.py |
15
- | **Data Models** | Complete | main/models.py (FoodVote, Suggestion) |
16
- | **View Functions** | Complete | main/views.py (5 view functions) |
17
- | **Backend Management** | Complete | main/admin.py |
18
- | **Template Files** | Complete | main/templates/ (4 templates) |
19
- | **Test Suite** | ✅ Complete | tests/ (41 test cases) |
20
- | **Dependency Config** | ✅ Complete | requirements.txt |
21
- | **Docker Config** | ✅ Complete | Dockerfile, docker-compose.yml |
22
- | **Startup Script** | Complete | docker-entrypoint.sh |
23
- | **Test Data** | ✅ Complete | add\_test\_data.py |
24
-
25
- 5.3 Deployment Completeness
26
-
27
- | Deployment Method | Implementation Status | Description |
21
+ | **Core runtime** | `<Complete/Partial/Missing>` | `<what exists>` |
22
+ | **Primary user-facing flows** | `<Complete/Partial/Missing>` | `<what exists>` |
23
+ | **Admin/operator flows** | `<Complete/Partial/Missing/Not Applicable>` | `<what exists>` |
24
+ | **Persistence / state / data model** | `<Complete/Partial/Missing/Not Applicable>` | `<what exists>` |
25
+ | **Tests** | `<Complete/Partial/Missing>` | `<what exists>` |
26
+ | **Build / packaging / runtime config** | `<Complete/Partial/Missing>` | `<what exists>` |
27
+
28
+ ## Runtime and deployment completeness
29
+
30
+ | Runtime Method | Implementation Status | Description |
28
31
  | :---- | :---- | :---- |
29
- | **Local Execution** | Complete | requirements.txt \+ python manage.py runserver |
30
- | **Docker Deployment** | Complete | docker compose up one-click startup |
31
- | **Data Persistence** | Complete | Volume mounting for media\_data and db\_data |
32
- | **Auto-Initialization** | Complete | Automatic database migration, admin creation, and test data addition |
32
+ | **Primary runtime command** | `<Complete/Partial/Missing>` | `<docker compose up --build or ./run_app.sh, etc.>` |
33
+ | **Broad test command** | `<Complete/Partial/Missing>` | `<./run_tests.sh behavior>` |
34
+ | **Local development verification** | `<Complete/Partial/Missing>` | `<local tests/tools present for normal iteration>` |
35
+ | **Persistence / initialization / automation** | `<Complete/Partial/Missing/Not Applicable>` | `<what happens automatically>` |
33
36
 
34
- 5.4 Delivery Completeness Rating
37
+ ## Delivery completeness rating
35
38
 
36
- **Rating: 10/10**
39
+ **Rating:** `<score or qualitative result>`
37
40
 
38
41
  **Strengths:**
39
42
 
40
- * **Complete Documentation**: README and other documents are comprehensive
41
- * **Complete Code**: All functional modules are implemented with nothing missing
42
- * **Runnability**: Supports both local execution and Docker one-click deployment
43
- * **Test Coverage**: 41 test cases with a completely isolated test environment
44
- * **Automation**: Docker startup automatically completes all initialization tasks
43
+ - `<strength 1>`
44
+ - `<strength 2>`
45
+ - `<strength 3>`
46
+
47
+ **Gaps or limits:**
48
+
49
+ - `<gap 1 or 'None material'>`
50
+ - `<gap 2 if needed>`
51
+
52
+ ## Hard-threshold summary inputs
53
+
54
+ Explicitly answer:
45
55
 
56
+ 1. Can the delivered product actually run through its primary runtime command?
57
+ 2. Can the delivered product actually be verified through `./run_tests.sh`?
58
+ 3. Does the delivered output fully cover the core prompt requirements?
59
+ 4. Is the delivered product a real 0-to-1 delivery rather than a partial or schematic implementation?
@@ -1,59 +1,63 @@
1
- **Engineering Details and Professionalism \- Self-Test Results**
1
+ ## Engineering Details and Professionalism Template
2
2
 
3
- * **Coding Standards**
4
- * **Error Handling**
5
- * **Input Validation and Message Prompts**
6
- * **Error Handling**
7
- * **File Upload Security**
3
+ Use this file as the structure reference for the engineering-details-and-professionalism submission output.
8
4
 
9
- **Image Upload Configuration**
5
+ Do not copy stack-specific example code or project-specific security claims into the final document.
6
+ Replace every placeholder with current-project evidence.
10
7
 
11
- image \= models.ImageField(upload\_to='suggestions/', blank=True, null=True)
8
+ ## Core checklist
12
9
 
13
- **Security Features:**
10
+ Cover these areas explicitly using project-type equivalents when the exact surface changes:
14
11
 
15
- * **CSRF Protection**: All POST requests require a CSRF token
16
- * **XSS Protection**: Django templates automatically escape HTML
17
- * **SQL Injection Protection**: Uses Django ORM with parameterized queries
18
- * **Clickjacking Protection**: X-Frame-Options middleware
19
- * **File Uploads**: Uses ImageField to validate image formats
12
+ 1. coding standards and consistency
13
+ 2. error handling and user-safe failures
14
+ 3. input validation
15
+ 4. logging or diagnostics
16
+ 5. security-sensitive implementation details
17
+ 6. test integrity
18
+ 7. cleanup and professionalism
20
19
 
21
- **Test Integrity**
20
+ ## Engineering details review
22
21
 
23
- **4.4.1 Test Case Coverage**
22
+ ### Coding standards
23
+ - `<what standards/patterns are followed>`
24
24
 
25
- **Test Coverage:**
25
+ ### Error handling
26
+ - `<how errors are handled and surfaced safely>`
26
27
 
27
- * **Model Testing**: 19 test cases (FoodVote, Suggestion, User models)
28
- * **View Testing**: 14 test cases (Home page, voting, suggestion list, word cloud generation)
29
- * ✅ **Integration Testing**: 8 test cases (End-to-end process, Chinese language support)
30
- * ✅ **Total**: 41 test cases all passed
28
+ ### Input validation
29
+ - `<how important inputs are validated>`
31
30
 
32
- **Test Isolation Mechanism:**
31
+ ### Logging / diagnostics
32
+ - `<what logging or diagnostics exist>`
33
33
 
34
- * Uses in-memory database (:memory:), automatically cleared after testing
35
- * Automatic transaction rollback after each test function runs
36
- * ✅ Test data does not pollute the production database (db.sqlite3)
37
- * ✅ Automatic data initialization scripts in startup scripts are disabled
34
+ ### Security details
35
+ - `<security mechanisms actually present>`
38
36
 
39
- **Test Screenshots**
37
+ ### Test integrity
38
+ - `<test types present, isolation model, and major coverage notes>`
40
39
 
41
- **Test Success Screenshots**
40
+ ### Cleanup and professionalism
41
+ - `<absence of secrets, debug leftovers, committed dependency trees, etc.>`
42
42
 
43
- **Engineering Details Rating**
43
+ ## Checklist table
44
44
 
45
- **Strengths:**
45
+ | Check | Status | Evidence |
46
+ | :---- | :---- | :---- |
47
+ | Error handling is credible | `<Pass/Partial/Fail>` | `<evidence>` |
48
+ | Important inputs are validated | `<Pass/Partial/Fail>` | `<evidence>` |
49
+ | Logging/diagnostics are useful | `<Pass/Partial/Fail>` | `<evidence>` |
50
+ | No secrets/keys are committed | `<Pass/Partial/Fail>` | `<evidence>` |
51
+ | No committed dependency directories | `<Pass/Partial/Fail>` | `<evidence>` |
52
+ | No obvious leftover debug statements | `<Pass/Partial/Fail>` | `<evidence>` |
46
53
 
47
- * **Coding Standards**: Follows PEP 8, clear naming, complete Chinese comments
48
- * **Error Handling**: Layered processing, user-friendly prompts, comprehensive exception capturing
49
- * **Security**: Django built-in security features, CSRF/XSS/SQL injection protection
50
- * **Test Integrity**: 41 test cases, completely isolated test environment
51
- * **Maintainability**: Modular design, clear responsibilities, easy to extend
54
+ ## Professionalism summary
52
55
 
53
- **Room for Improvement:**
56
+ **Strengths:**
54
57
 
55
- * Consider adding logging functionality
56
- * Consider adding API documentation (e.g., using Swagger)
58
+ - `<strength 1>`
59
+ - `<strength 2>`
57
60
 
58
- Would you like me to help you draft the logging configuration or the Swagger integration mentioned in the improvement section?
61
+ **Remaining concerns:**
59
62
 
63
+ - `<concern 1 or 'None material'>`
@@ -1,36 +1,43 @@
1
- **8.2 Actual Implementation vs. Requirements Comparison**
1
+ ## Prompt Understanding and Adaptability Template
2
2
 
3
- | Requirement Item | Original Requirement | Actual Implementation | Exceeding Portion |
3
+ Use this file as the structure reference for the prompt-understanding-and-adaptability submission output.
4
+
5
+ Do not copy example requirements or project-specific features into the final document.
6
+ Replace every placeholder with current-project evidence.
7
+
8
+ ## Actual implementation vs requirements comparison
9
+
10
+ | Requirement Item | Original Requirement | Actual Implementation | Exceeding Portion / Notes |
4
11
  | :---- | :---- | :---- | :---- |
5
- | **Complaint & Suggestion Function** | Basic requirement | Fully implemented | Added categories, status tracking, and administrator replies |
6
- | **Data Management** | Basic requirement | Fully implemented | Added Django Admin backend management |
7
- | **User Interaction** | Not specified | ✅ Fully implemented | Added responsive design and aesthetic interface |
8
- | **Innovative Features** | Not required | ✅ Exceeded implementation | "What I Want to Eat Most Tomorrow" leaderboard, voting function, and word cloud display |
9
- | **Image Upload** | Not required | ✅ Exceeded implementation | Supports uploading images as evidence |
10
-
11
- **8.3 Depth of Requirement Understanding**
12
- The project not only met the original requirements but also deeply understood the underlying business scenarios:
13
-
14
- * **Understood the "Canteen" scenario**: Beyond just complaints and suggestions, a "What I Want to Eat Most Tomorrow" voting function was added to increase user engagement.
15
- * **Understood "Management" needs**: Provided a complete backend management system supporting categorization, status tracking, and administrator replies.
16
- * **Understood the value of "Visualization"**: Used word clouds to display trending issues, intuitively showing user points of concern.
17
- * **Understood the importance of "User Experience"**: Responsive design, aesthetic interface, and smooth animations.
18
- * **Understood the key to "Runnability"**: Docker one-click deployment, data persistence, and comprehensive testing.
19
- * **Homepage Display**
20
- * **Suggestion Word Cloud**
21
- * **Submit Suggestion**
22
- * **View Suggestions**
23
- * **Status Filtering**
24
-
25
- **Admin Management Default Password**: admin / admin123
26
-
27
- * **Admin Management**
28
- * **Background Color Toggle**
29
- * **Add User**
30
- * **Modify User Information**
31
- * **User Permission Control**
32
- * **Modify Suggestion**
33
- * **Batch Execution**
34
- * **Search**
35
- * **Add Suggestion**
12
+ | `<requirement>` | `<what the prompt asked for>` | `<what was delivered>` | `<extra or note>` |
13
+ | `<requirement>` | `<what the prompt asked for>` | `<what was delivered>` | `<extra or note>` |
14
+
15
+ ## Depth of requirement understanding
16
+
17
+ Explain whether the delivered project shows real understanding of:
18
+
19
+ - business objectives
20
+ - user and operator flows
21
+ - implicit constraints
22
+ - runnability and maintainability expectations
23
+ - why the chosen implementation fits the actual problem
24
+
25
+ Use project-specific evidence only.
26
+
27
+ ## Prompt-fit summary
28
+
29
+ Answer explicitly:
30
+
31
+ 1. Did the implementation stay aligned with the actual prompt?
32
+ 2. Did it cover the core required flows completely?
33
+ 3. Did it understand the business goal rather than only surface technical tasks?
34
+ 4. Where did it exceed, refine, or interpret the prompt, and was that prompt-faithful?
35
+
36
+ ## Over-delivery / adaptability notes
37
+
38
+ - `<meaningful improvement or adaptation>`
39
+ - `<meaningful improvement or adaptation>`
40
+
41
+ ## Risks or caveats
36
42
 
43
+ - `<any remaining prompt-fit caveat or 'None material'>`
@@ -1,108 +1,67 @@
1
- **Self-Test Results \- Engineering and Architecture Quality**
2
- **Project Positioning**
1
+ ## Engineering and Architecture Quality Template
3
2
 
4
- This is a full-stack canteen management system, including:
3
+ Use this file as the structure reference for the engineering-and-architecture self-assessment output.
5
4
 
6
- * **Frontend Display Page**: User-facing; displays "Tomorrow's Most Wanted Food List," allows submission of opinions and suggestions, and displays word clouds.
7
- * **Administrator Backend**: Admin-facing; manages food voting and opinions/suggestions.
5
+ Do not copy stack-specific or project-specific example content into the final document.
6
+ Replace every placeholder with current-project evidence.
8
7
 
9
- **Technology Stack Selection**
8
+ ## Project positioning
10
9
 
11
- * **Backend**: Django 6.0.2 \+ Python 3.8+
12
- * **Database**: SQLite3
13
- * **Image Processing**: Pillow 12.1.0
14
- * **Chinese Segmentation**: jieba 0.42.1
15
- * **Word Cloud Generation**: wordcloud 1.9.6 \+ matplotlib 3.10.8
16
- * **Testing Framework**: pytest 8.3.4 \+ pytest-django 4.9.0
17
- * **Deployment**: Docker Compose one-click startup
10
+ - **Project Type:** `<web/mobile/desktop/cli/library/etc.>`
11
+ - **Primary problem solved:** `<short summary>`
12
+ - **Major user or operator surfaces:**
13
+ - `<surface 1>`
14
+ - `<surface 2>`
18
15
 
19
- **Overall Architecture Diagram**
16
+ ## Technology stack selection
20
17
 
21
- *(Architecture diagram placeholder)*
18
+ - **Primary runtime stack:** `<actual stack>`
19
+ - **Primary language(s):** `<actual language(s)>`
20
+ - **Persistence / data layer:** `<actual persistence>`
21
+ - **Testing stack:** `<actual test stack>`
22
+ - **Deployment / runtime model:** `<actual runtime model>`
22
23
 
23
- **Architecture Description:**
24
+ ## Architecture description
24
25
 
25
- * **Client Layer**: Browser access to frontend pages and backend management.
26
- * **URL Routing Layer**: Receives HTTP requests and routes them to corresponding view functions.
27
- * **View Layer**: Processes business logic and calls the model layer for data operations.
28
- * **Model Layer**: Defines data models and interacts with the database via Django ORM.
29
- * **Template Layer**: Renders HTML pages to return to the client.
30
- * **Backend Management**: Management interface provided by Django Admin.
31
- * **Data Layer**: SQLite3 database for data storage.
26
+ - **High-level structure:** `<major layers/modules>`
27
+ - **Runtime boundaries:** `<how runtime pieces fit together>`
28
+ - **Data or state boundaries:** `<where state lives and how it flows>`
29
+ - **Key contracts:** `<critical interfaces or shared contracts>`
32
30
 
33
- **Module Division (Clear Responsibilities)**
31
+ ## Module division
34
32
 
35
- | Module | Responsibility | File |
33
+ | Module | Responsibility | File / Area |
36
34
  | :---- | :---- | :---- |
37
- | **Configuration Management** | Django settings, middleware, database configuration | complaint\_system/settings.py |
38
- | **URL Routing** | Request routing and dispatch | complaint\_system/urls.py, main/urls.py |
39
- | **Data Models** | ORM model definitions, database table structures | main/models.py |
40
- | **View Functions** | Business logic processing, request/response handling | main/views.py |
41
- | **Backend Management** | Django Admin configuration | main/admin.py |
42
- | **Templates** | HTML page rendering | main/templates/ |
43
- | **Testing** | Unit testing, integration testing | tests/ |
35
+ | `<module>` | `<responsibility>` | `<path>` |
36
+ | `<module>` | `<responsibility>` | `<path>` |
44
37
 
45
- **Request Processing Flow**
38
+ ## Architecture quality assessment
46
39
 
47
- *(Data flow diagram placeholder)*
40
+ **Score / Rating:** `<score or qualitative result>`
48
41
 
49
- **3.2 Architecture Quality Rating**
42
+ **Strengths:**
50
43
 
51
- **Score: 9.0/10**
44
+ - `<strength 1>`
45
+ - `<strength 2>`
46
+ - `<strength 3>`
52
47
 
53
- **Pros:**
48
+ **Areas for improvement:**
54
49
 
55
- * **Modular Design**: Clear responsibilities, low coupling, and easy to maintain.
56
- * **Layered Architecture**: Clear levels from View Layer → Model Layer → Data Layer.
57
- * **Django Best Practices**: Utilizes built-in functions such as Django ORM, Admin, and Messages.
58
- * **Centralized Configuration**: All configurations are managed centrally in settings.py.
59
- * **Scalability**: The database can be easily replaced with PostgreSQL or MySQL.
50
+ - `<improvement 1 or 'None material'>`
51
+ - `<improvement 2 if needed>`
60
52
 
61
- **Areas for Improvement:**
53
+ ## Maintainability review
62
54
 
63
- * Consider introducing a Service layer to decouple complex business logic from views.
64
- * Consider using the Django REST Framework to provide API interfaces.
55
+ Address explicitly:
65
56
 
66
- **3.3 Database Design**
57
+ 1. Is the structure modular and reviewable?
58
+ 2. Are cross-cutting concerns handled consistently?
59
+ 3. Are there major coupling or extension risks?
60
+ 4. Does the project look like a credible maintained system rather than a stacked prototype?
67
61
 
68
- **Table Structure: FoodVote (Food Voting)**
69
-
70
- | Field | Type | Description |
71
- | :---- | :---- | :---- |
72
- | id | INTEGER PK | Primary Key |
73
- | name | VARCHAR(100) | Food Name |
74
- | meal\_type | VARCHAR(20) | Meal Type (breakfast/lunch/dinner) |
75
- | vote\_count | INTEGER | Vote Count |
76
- | created\_at | DATETIME | Creation Time |
77
- | updated\_at | DATETIME | Update Time |
78
-
79
- **Table Structure: Suggestion (Opinions and Suggestions)**
80
-
81
- | Field | Type | Description |
82
- | :---- | :---- | :---- |
83
- | id | INTEGER PK | Primary Key |
84
- | title | VARCHAR(200) | Title |
85
- | content | TEXT | Content |
86
- | category | VARCHAR(20) | Category (food/service/environment/price/other) |
87
- | status | VARCHAR(20) | Status (pending/processing/resolved/closed) |
88
- | submitter\_name | VARCHAR(50) | Submitter Name (Optional) |
89
- | submitter\_contact | VARCHAR(100) | Contact Info (Optional) |
90
- | image | VARCHAR(100) | Image Path (Optional) |
91
- | admin\_reply | TEXT | Admin Reply (Optional) |
92
- | created\_at | DATETIME | Creation Time |
93
- | updated\_at | DATETIME | Update Time |
94
-
95
- **Index Design**
96
-
97
- * **FoodVote Table Index**: Composite index to support queries by meal type and vote count: models.Index(fields=\['meal\_type', '-vote\_count'\]).
98
- * **Suggestion Table Index**:
99
- * Composite index for status and creation time: models.Index(fields=\['status', '-created\_at'\]).
100
- * Composite index for category and creation time: models.Index(fields=\['category', '-created\_at'\]).
101
-
102
- **Design Evaluation:**
103
-
104
- * ✅ Index design is reasonable and covers main query scenarios.
105
- * ✅ Field types are chosen appropriately, using TextChoices enumeration types.
106
- * ✅ Uses Django ORM for easy migration to other databases.
107
- * ✅ Timestamp fields are automatically managed using auto\_now\_add and auto\_now.
62
+ ## Evidence to include
108
63
 
64
+ - brief architecture explanation
65
+ - major module map
66
+ - any key diagrams or screenshots when useful
67
+ - repo structure screenshot reference when used in the final generated file
@@ -1,4 +1,4 @@
1
- # Developer Rulebook v2
1
+ # Developer Rulebook
2
2
 
3
3
  This file is the repo-local engineering rulebook for `slopmachine` projects.
4
4
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "theslopmachine",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "description": "SlopMachine installer and project bootstrap CLI",
5
5
  "license": "MIT",
6
6
  "type": "module",
package/src/constants.js CHANGED
@@ -1,87 +1,90 @@
1
- import os from 'node:os'
2
- import path from 'node:path'
3
- import { fileURLToPath } from 'node:url'
1
+ import os from "node:os";
2
+ import path from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
4
 
5
- export const PACKAGE_VERSION = '0.4.0'
6
- export const OPCODE_VERSION = '1.3.5'
7
- export const BR_VERSION = '0.1.34'
8
- export const PACKAGE_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..')
5
+ export const PACKAGE_VERSION = "0.4.3";
6
+ export const OPCODE_VERSION = "1.3.5";
7
+ export const BR_VERSION = "0.1.34";
8
+ export const PACKAGE_ROOT = path.resolve(
9
+ path.dirname(fileURLToPath(import.meta.url)),
10
+ "..",
11
+ );
9
12
 
10
13
  export function resolveHomeDir() {
11
- return process.env.SLOPMACHINE_HOME || os.homedir()
14
+ return process.env.SLOPMACHINE_HOME || os.homedir();
12
15
  }
13
16
 
14
17
  export function buildPaths() {
15
- const home = resolveHomeDir()
18
+ const home = resolveHomeDir();
16
19
  return {
17
20
  home,
18
- slopmachineDir: path.join(home, 'slopmachine'),
19
- opencodeDir: path.join(home, '.config', 'opencode'),
20
- opencodeAgentsDir: path.join(home, '.config', 'opencode', 'agents'),
21
- opencodeConfigPath: path.join(home, '.config', 'opencode', 'opencode.json'),
22
- globalSkillsDir: path.join(home, '.agents', 'skills'),
23
- }
21
+ slopmachineDir: path.join(home, "slopmachine"),
22
+ opencodeDir: path.join(home, ".config", "opencode"),
23
+ opencodeAgentsDir: path.join(home, ".config", "opencode", "agents"),
24
+ opencodeConfigPath: path.join(home, ".config", "opencode", "opencode.json"),
25
+ globalSkillsDir: path.join(home, ".agents", "skills"),
26
+ };
24
27
  }
25
28
 
26
29
  export const REQUIRED_SKILL_DIRS = [
27
- 'clarification-gate',
28
- 'developer-session-lifecycle',
29
- 'session-rollover',
30
- 'final-evaluation-orchestration',
31
- 'beads-operations',
32
- 'planning-guidance',
33
- 'planning-gate',
34
- 'scaffold-guidance',
35
- 'development-guidance',
36
- 'verification-gates',
37
- 'integrated-verification',
38
- 'hardening-gate',
39
- 'evaluation-triage',
40
- 'remediation-guidance',
41
- 'submission-packaging',
42
- 'retrospective-analysis',
43
- 'owner-evidence-discipline',
44
- 'report-output-discipline',
45
- 'frontend-design',
46
- ]
30
+ "clarification-gate",
31
+ "developer-session-lifecycle",
32
+ "session-rollover",
33
+ "final-evaluation-orchestration",
34
+ "beads-operations",
35
+ "planning-guidance",
36
+ "planning-gate",
37
+ "scaffold-guidance",
38
+ "development-guidance",
39
+ "verification-gates",
40
+ "integrated-verification",
41
+ "hardening-gate",
42
+ "evaluation-triage",
43
+ "remediation-guidance",
44
+ "submission-packaging",
45
+ "retrospective-analysis",
46
+ "owner-evidence-discipline",
47
+ "report-output-discipline",
48
+ "frontend-design",
49
+ ];
47
50
 
48
51
  export const REQUIRED_SLOPMACHINE_FILES = [
49
- 'backend-evaluation-prompt.md',
50
- 'frontend-evaluation-prompt.md',
51
- 'document-completeness.md',
52
- 'quality-document.md',
53
- 'engineering-results.md',
54
- 'implementation-comparison.md',
55
- 'workflow-init.js',
56
- 'templates/AGENTS.md',
57
- 'utils/strip_session_parent.py',
58
- 'utils/convert_ai_session.py',
59
- ]
52
+ "backend-evaluation-prompt.md",
53
+ "frontend-evaluation-prompt.md",
54
+ "document-completeness.md",
55
+ "quality-document.md",
56
+ "engineering-results.md",
57
+ "implementation-comparison.md",
58
+ "workflow-init.js",
59
+ "templates/AGENTS.md",
60
+ "utils/strip_session_parent.py",
61
+ "utils/convert_ai_session.py",
62
+ ];
60
63
 
61
64
  export const MCP_ENTRIES = {
62
- 'chrome-devtools': {
63
- type: 'local',
64
- command: ['npx', '-y', 'chrome-devtools-mcp@latest'],
65
+ "chrome-devtools": {
66
+ type: "local",
67
+ command: ["npx", "-y", "chrome-devtools-mcp@latest"],
65
68
  },
66
69
  context7: {
67
70
  enabled: true,
68
- type: 'remote',
69
- url: 'https://mcp.context7.com/mcp',
71
+ type: "remote",
72
+ url: "https://mcp.context7.com/mcp",
70
73
  headers: {
71
- CONTEXT7_API_KEY: '',
74
+ CONTEXT7_API_KEY: "",
72
75
  },
73
76
  },
74
77
  exa: {
75
78
  enabled: true,
76
- type: 'remote',
77
- url: 'https://mcp.exa.ai/mcp',
79
+ type: "remote",
80
+ url: "https://mcp.exa.ai/mcp",
78
81
  headers: {
79
- EXA_API_KEY: '',
82
+ EXA_API_KEY: "",
80
83
  },
81
84
  },
82
85
  shadcn: {
83
- command: ['npx', 'shadcn@latest', 'mcp'],
86
+ command: ["npx", "shadcn@latest", "mcp"],
84
87
  enabled: false,
85
- type: 'local',
88
+ type: "local",
86
89
  },
87
- }
90
+ };