theslopmachine 0.3.0
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/MANUAL.md +63 -0
- package/README.md +23 -0
- package/RELEASE.md +81 -0
- package/assets/agents/developer.md +294 -0
- package/assets/agents/slopmachine.md +510 -0
- package/assets/skills/beads-operations/SKILL.md +75 -0
- package/assets/skills/clarification-gate/SKILL.md +51 -0
- package/assets/skills/developer-session-lifecycle/SKILL.md +75 -0
- package/assets/skills/final-evaluation-orchestration/SKILL.md +75 -0
- package/assets/skills/frontend-design/SKILL.md +41 -0
- package/assets/skills/get-overlays/SKILL.md +157 -0
- package/assets/skills/planning-gate/SKILL.md +68 -0
- package/assets/skills/submission-packaging/SKILL.md +268 -0
- package/assets/skills/verification-gates/SKILL.md +106 -0
- package/assets/slopmachine/backend-evaluation-prompt.md +275 -0
- package/assets/slopmachine/beads-init.js +428 -0
- package/assets/slopmachine/document-completeness.md +45 -0
- package/assets/slopmachine/engineering-results.md +59 -0
- package/assets/slopmachine/frontend-evaluation-prompt.md +304 -0
- package/assets/slopmachine/implementation-comparison.md +36 -0
- package/assets/slopmachine/quality-document.md +108 -0
- package/assets/slopmachine/templates/AGENTS.md +114 -0
- package/assets/slopmachine/utils/convert_ai_session.py +1837 -0
- package/assets/slopmachine/utils/strip_session_parent.py +66 -0
- package/bin/slopmachine.js +9 -0
- package/package.json +25 -0
- package/src/cli.js +32 -0
- package/src/constants.js +77 -0
- package/src/init.js +179 -0
- package/src/install.js +330 -0
- package/src/utils.js +162 -0
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
You are the reviewer responsible for “Delivery Acceptance / Project Architecture Inspection.”
|
|
2
|
+
|
|
3
|
+
In the current working directory, review the frontend project point by point and make determination judgments based on the [Business / Task Prompt] and the [Acceptance / Scoring Criteria]. The acceptance criteria are the sole standard of judgment.
|
|
4
|
+
|
|
5
|
+
[Business / Task Prompt]
|
|
6
|
+
{prompt}
|
|
7
|
+
|
|
8
|
+
[Acceptance / Scoring Criteria (single source of truth)]
|
|
9
|
+
{
|
|
10
|
+
|
|
11
|
+
1. Mandatory Gate Checks
|
|
12
|
+
|
|
13
|
+
1.1 Can the delivered project actually be run and verified?
|
|
14
|
+
|
|
15
|
+
- Is there a clear explanation of how to start, run, build, or preview the project?
|
|
16
|
+
- Can it be started, built, or verified locally without modifying core code?
|
|
17
|
+
- Do the actual results generally match the delivery documentation?
|
|
18
|
+
|
|
19
|
+
1.2 Does the deliverable materially deviate from the Prompt?
|
|
20
|
+
|
|
21
|
+
- Does the implementation stay aligned with the business goal, page scenarios, and user flows described in the Prompt?
|
|
22
|
+
- Is there functionality that is only weakly related or unrelated to the Prompt?
|
|
23
|
+
- Has the implementation replaced, weakened, or ignored the core problem definition in the Prompt without explanation?
|
|
24
|
+
|
|
25
|
+
2. Completeness of Delivery
|
|
26
|
+
|
|
27
|
+
2.1 Does the deliverable fully cover the core requirements explicitly stated in the Prompt?
|
|
28
|
+
|
|
29
|
+
- Are the required pages, core features, core interactions, and key UI states implemented?
|
|
30
|
+
- Are the main user flows covered, rather than only static UI or isolated fragments?
|
|
31
|
+
|
|
32
|
+
2.2 Does the deliverable have the shape of a real end-to-end project rather than a partial sample, demo fragment, or illustrative code snippet?
|
|
33
|
+
|
|
34
|
+
- Is mock / hardcoded behavior used in place of real logic without being disclosed?
|
|
35
|
+
- Is there a complete project structure rather than scattered code or a single-file example?
|
|
36
|
+
- Is there basic project documentation such as a README or equivalent?
|
|
37
|
+
- Does the project have a basic organization for pages, routing, state, or data flow, rather than just stitched-together display code?
|
|
38
|
+
|
|
39
|
+
3. Engineering and Architecture Quality
|
|
40
|
+
|
|
41
|
+
3.1 Does the deliverable use a reasonable structure and module split for the scope of the problem?
|
|
42
|
+
|
|
43
|
+
- Is the project structure clear, with reasonably separated responsibilities?
|
|
44
|
+
- Is there basic separation across pages, components, state, service calls, and utility functions?
|
|
45
|
+
- Are there unnecessary or redundant files?
|
|
46
|
+
- Is too much logic stacked into a single file?
|
|
47
|
+
|
|
48
|
+
3.2 Does the deliverable show basic maintainability and extensibility rather than being a temporary or piled-up implementation?
|
|
49
|
+
|
|
50
|
+
- Is there obvious confusion or tight coupling?
|
|
51
|
+
- Does the core logic leave room for extension, or is everything hardcoded?
|
|
52
|
+
- Are component reuse, state management, API abstraction, and constant/config organization handled in a maintainable way?
|
|
53
|
+
|
|
54
|
+
4. Engineering Detail and Professionalism
|
|
55
|
+
|
|
56
|
+
4.1 Does the deliverable reflect sound frontend engineering practice in terms of error handling, logging, validation, state feedback, and interaction design?
|
|
57
|
+
|
|
58
|
+
- Is error handling basically reliable and user-friendly?
|
|
59
|
+
- Is necessary validation present for important inputs, key interactions, and boundary cases?
|
|
60
|
+
- Are essential UI states handled, such as loading, empty, error, submitting, and success / failure feedback?
|
|
61
|
+
- Is logging used to support troubleshooting rather than being random, excessive, or entirely absent?
|
|
62
|
+
- Is there any risk of sensitive data being exposed through console output, analytics, visible UI content, or similar surfaces?
|
|
63
|
+
|
|
64
|
+
4.2 Does the deliverable resemble a real product rather than a demo or tutorial artifact?
|
|
65
|
+
|
|
66
|
+
- Does the project look like a real application rather than a teaching sample or showcase demo?
|
|
67
|
+
- Are the pages meaningfully connected to each other?
|
|
68
|
+
- Are the interaction flows complete, rather than only displaying static outcomes?
|
|
69
|
+
|
|
70
|
+
5. Prompt Understanding and Fit
|
|
71
|
+
|
|
72
|
+
5.1 Does the deliverable correctly understand and respond to the business goal, usage scenario, and implied constraints in the Prompt, rather than merely implementing surface-level UI?
|
|
73
|
+
|
|
74
|
+
- Does it correctly fulfill the Prompt’s core business objective?
|
|
75
|
+
- Is there any clear misunderstanding of the requirement or deviation from the real problem being solved?
|
|
76
|
+
- Have key constraints in the Prompt been changed or ignored without explanation?
|
|
77
|
+
- Does the project only “look right” visually while failing to complete the actual interaction flow, state transitions, or user task closure?
|
|
78
|
+
|
|
79
|
+
6. Visual and Interaction Quality (frontend projects only)
|
|
80
|
+
|
|
81
|
+
6.1 Are the visuals and interactions appropriate to the scenario, and is the design reasonably polished?
|
|
82
|
+
|
|
83
|
+
- Are different functional areas visually distinguishable through background, separation, spacing, hierarchy, or similar means?
|
|
84
|
+
- Is the overall layout coherent, with consistent alignment, spacing, and proportions?
|
|
85
|
+
- Do UI elements such as text, images, and icons render correctly?
|
|
86
|
+
- Do the visual elements match the theme and content, or are there images / illustrations / decorative assets that clearly do not fit?
|
|
87
|
+
- Is there basic interaction feedback such as hover states, click states, disabled states, transitions, or current-state indications to help users understand what is happening?
|
|
88
|
+
- Are fonts, font sizes, colors, and icon styles basically consistent, or is the visual language mixed and inconsistent?
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
Review Objective
|
|
92
|
+
|
|
93
|
+
Determine whether the delivered project is a credible, runnable, prompt-aligned, and minimally professional frontend deliverable.
|
|
94
|
+
|
|
95
|
+
Priority Order
|
|
96
|
+
|
|
97
|
+
1. Runnability boundary
|
|
98
|
+
2. Prompt requirement fit
|
|
99
|
+
3. Security-critical flaws
|
|
100
|
+
4. Test sufficiency
|
|
101
|
+
5. Major engineering quality issues
|
|
102
|
+
6. Visual and interaction quality, only when clearly applicable
|
|
103
|
+
|
|
104
|
+
Execution Rules
|
|
105
|
+
|
|
106
|
+
1. Review only the highest-impact findings that can change the final verdict.
|
|
107
|
+
Do not exhaustively enumerate every secondary or tertiary checklist item.
|
|
108
|
+
|
|
109
|
+
2. Do not relax standards for:
|
|
110
|
+
|
|
111
|
+
- security
|
|
112
|
+
- prompt fit
|
|
113
|
+
- completeness of delivery
|
|
114
|
+
- test sufficiency
|
|
115
|
+
- evidence for material conclusions
|
|
116
|
+
|
|
117
|
+
3. Do not skip any issue that could independently lead to a Fail or Partial Pass verdict.
|
|
118
|
+
|
|
119
|
+
4. If a security, prompt-fit, runnability, or core test-sufficiency issue is suspected, continue investigating until it is either evidenced or explicitly marked Cannot Confirm.
|
|
120
|
+
|
|
121
|
+
5. Stop expanding once either of the following conditions is met:
|
|
122
|
+
|
|
123
|
+
- up to 10 findings have been identified in total
|
|
124
|
+
- up to 5 High / Blocker findings have been identified
|
|
125
|
+
Whichever comes first.
|
|
126
|
+
|
|
127
|
+
6. Do not modify project code.
|
|
128
|
+
|
|
129
|
+
7. Require evidence only for material conclusions.
|
|
130
|
+
For any conclusion that changes the final verdict, provide concrete, traceable evidence. Evidence may be in the form of file path + line number, tool output, or an explicit runtime result.
|
|
131
|
+
|
|
132
|
+
8. If evidence is insufficient, do not guess.
|
|
133
|
+
Use “Cannot Confirm,” or explicitly label the judgment as an assumption together with its applicable boundary.
|
|
134
|
+
|
|
135
|
+
9. Perform runtime verification only when all of the following are true:
|
|
136
|
+
|
|
137
|
+
- the command is explicitly documented
|
|
138
|
+
- no Docker is required
|
|
139
|
+
- no Docker-related command is required
|
|
140
|
+
- no container orchestration is required
|
|
141
|
+
- no privileged system access is required
|
|
142
|
+
- no external network / third-party dependency is required
|
|
143
|
+
- expected execution time is short
|
|
144
|
+
|
|
145
|
+
10. Never run any Docker-related command.
|
|
146
|
+
This includes, but is not limited to:
|
|
147
|
+
|
|
148
|
+
- docker
|
|
149
|
+
- docker compose
|
|
150
|
+
- docker-compose
|
|
151
|
+
- podman
|
|
152
|
+
- container runtime / orchestration commands with equivalent effect
|
|
153
|
+
|
|
154
|
+
11. If verification would require Docker or any container-related command, do not execute it.
|
|
155
|
+
Instead:
|
|
156
|
+
|
|
157
|
+
- clearly state that Docker-based runtime verification was not performed
|
|
158
|
+
- treat it as a verification boundary, not automatically as a project defect
|
|
159
|
+
- provide local reproduction commands the user can run
|
|
160
|
+
- state what was confirmed through static review
|
|
161
|
+
- state what remains unconfirmed
|
|
162
|
+
|
|
163
|
+
12. Docker non-execution is a verification constraint, not a project defect by itself.
|
|
164
|
+
Only report a defect if the project itself lacks runnable documentation, has broken startup logic, or shows static evidence of delivery failure.
|
|
165
|
+
|
|
166
|
+
13. Security review has priority over style issues.
|
|
167
|
+
Always assess:
|
|
168
|
+
|
|
169
|
+
- authentication entry points and login-state handling
|
|
170
|
+
- frontend route protection / route guards
|
|
171
|
+
- page-level / feature-level access control
|
|
172
|
+
- whether admin pages, debug pages, config pages, or hidden menus can be accessed directly
|
|
173
|
+
- whether tokens, user information, secrets, environment variables, or debug data are exposed in frontend code, logs, analytics, localStorage, sessionStorage, visible responses, or console output
|
|
174
|
+
- whether switching between users leaves behind cached data, stale state, or leaked page content
|
|
175
|
+
|
|
176
|
+
14. Tests and logging are part of the acceptance scope, but do not build a full requirement-to-test traceability matrix.
|
|
177
|
+
Only assess whether the following are sufficiently covered:
|
|
178
|
+
|
|
179
|
+
- the core business happy path
|
|
180
|
+
- major failure paths, such as validation failure, unauthenticated interception, insufficient permission feedback, missing-resource empty / error states, request failure handling, duplicate-submission protection, and similar relevant cases
|
|
181
|
+
- frontend security-critical areas
|
|
182
|
+
- important boundaries directly tied to the business flow, such as pagination, sorting, filtering, search, loading / empty / error states, repeat clicks / repeat requests, async race conditions, and state recovery
|
|
183
|
+
- whether unit tests, component tests, page / route integration tests, and E2E tests exist and appear basically runnable
|
|
184
|
+
- whether log categorization is clear and whether there is any risk of sensitive-data leakage
|
|
185
|
+
|
|
186
|
+
15. For test coverage, state only:
|
|
187
|
+
|
|
188
|
+
- covered / partially covered / missing / cannot confirm
|
|
189
|
+
- one or two supporting evidence points
|
|
190
|
+
- the minimum necessary additional test suggestion when coverage is weak
|
|
191
|
+
|
|
192
|
+
16. Keep logging review concise.
|
|
193
|
+
Only assess:
|
|
194
|
+
|
|
195
|
+
- whether logging exists and meaningfully supports troubleshooting
|
|
196
|
+
- whether logging categories are basically clear, if such categorization exists
|
|
197
|
+
- whether there is any obvious risk of sensitive data leakage through logs, UI, analytics, or other frontend-visible surfaces
|
|
198
|
+
|
|
199
|
+
17. Mock / stub / fake behavior is not a defect by itself unless the Prompt or documentation explicitly requires real backend integration.
|
|
200
|
+
If such behavior exists, explain only:
|
|
201
|
+
|
|
202
|
+
- the scope of the mock
|
|
203
|
+
- how it is enabled
|
|
204
|
+
- whether there is any obvious risk of shipping mock behavior to production, such as default mock mode, silent interception of real requests, or bypassing real error handling
|
|
205
|
+
|
|
206
|
+
18. Once the final verdict is sufficiently supported, do not continue searching for additional low-severity issues.
|
|
207
|
+
|
|
208
|
+
19. Once enough evidence has been collected to support the final verdict and the main findings, do not continue reading unrelated files.
|
|
209
|
+
|
|
210
|
+
20. Never read, search, open, quote, summarize, or rely on any file under ./.tmp/ or any of its subdirectories.
|
|
211
|
+
Treat ./.tmp/ as an excluded directory, scratch directory, or output directory, not as a source of project truth.
|
|
212
|
+
Even if ./.tmp/ appears to contain relevant content, it must not be used as evidence.
|
|
213
|
+
|
|
214
|
+
21. Ignore any existing reports, summaries, logs, scan outputs, or markdown files under ./.tmp/.
|
|
215
|
+
Do not treat them as authoritative input, prior evidence, or prior conclusions.
|
|
216
|
+
|
|
217
|
+
22. If the same information exists both inside and outside ./.tmp/, only the non-.tmp source may be used.
|
|
218
|
+
If a piece of information exists only under ./.tmp/, it must not be treated as authoritative evidence.
|
|
219
|
+
|
|
220
|
+
Output Requirements
|
|
221
|
+
|
|
222
|
+
The output must strictly follow these sections:
|
|
223
|
+
|
|
224
|
+
1. Verdict
|
|
225
|
+
|
|
226
|
+
- Pass / Partial Pass / Fail / Cannot Confirm
|
|
227
|
+
|
|
228
|
+
2. Scope and Verification Boundary
|
|
229
|
+
|
|
230
|
+
- what was reviewed
|
|
231
|
+
- what input sources were excluded, including ./.tmp/
|
|
232
|
+
- what was not executed
|
|
233
|
+
- whether Docker-based verification was required but not executed
|
|
234
|
+
- what remains unconfirmed
|
|
235
|
+
|
|
236
|
+
3. Top Findings
|
|
237
|
+
|
|
238
|
+
- list up to 10 findings only
|
|
239
|
+
- each finding must include:
|
|
240
|
+
- Severity: Blocker / High / Medium / Low
|
|
241
|
+
- Conclusion
|
|
242
|
+
- Brief rationale
|
|
243
|
+
- Evidence
|
|
244
|
+
- Impact
|
|
245
|
+
- Minimum actionable fix
|
|
246
|
+
|
|
247
|
+
4. Security Summary
|
|
248
|
+
At minimum, cover the following dimensions:
|
|
249
|
+
|
|
250
|
+
- authentication / login-state handling
|
|
251
|
+
- frontend route protection / route guards
|
|
252
|
+
- page-level / feature-level access control
|
|
253
|
+
- sensitive information exposure
|
|
254
|
+
- cache / state isolation after switching users
|
|
255
|
+
|
|
256
|
+
For each item above, output:
|
|
257
|
+
|
|
258
|
+
- Pass / Partial Pass / Fail / Cannot Confirm
|
|
259
|
+
- brief evidence or verification-boundary explanation
|
|
260
|
+
|
|
261
|
+
5. Test Sufficiency Summary
|
|
262
|
+
Must include:
|
|
263
|
+
|
|
264
|
+
- Test Overview
|
|
265
|
+
- whether unit tests exist
|
|
266
|
+
- whether component tests exist
|
|
267
|
+
- whether page / route integration tests exist
|
|
268
|
+
- whether E2E tests exist
|
|
269
|
+
- if they exist, what the obvious test entry points are
|
|
270
|
+
- Core Coverage
|
|
271
|
+
- happy path: covered / partial / missing / cannot confirm
|
|
272
|
+
- key failure paths: covered / partial / missing / cannot confirm
|
|
273
|
+
- security-critical coverage: covered / partial / missing / cannot confirm
|
|
274
|
+
- Major Gaps
|
|
275
|
+
- list up to 3 highest-risk testing gaps
|
|
276
|
+
- Final Test Verdict
|
|
277
|
+
- Pass / Partial Pass / Fail / Cannot Confirm
|
|
278
|
+
|
|
279
|
+
6. Engineering Quality Summary
|
|
280
|
+
Assess only the major maintainability / architecture issues that materially affect delivery credibility.
|
|
281
|
+
|
|
282
|
+
7. Visual and Interaction Summary
|
|
283
|
+
Output this section only when clearly applicable.
|
|
284
|
+
Assess only the visual and interaction issues that materially affect delivery quality.
|
|
285
|
+
|
|
286
|
+
8. Next Actions
|
|
287
|
+
|
|
288
|
+
- list up to 5 actions
|
|
289
|
+
- sort them by severity and unblock value
|
|
290
|
+
|
|
291
|
+
Final Verification Before Output
|
|
292
|
+
|
|
293
|
+
Before finalizing, check all of the following:
|
|
294
|
+
|
|
295
|
+
1. Does each material conclusion have supporting evidence?
|
|
296
|
+
2. Are any claims stronger than the evidence actually supports?
|
|
297
|
+
3. If all unsupported observations are removed, does the final verdict still hold?
|
|
298
|
+
4. Has any uncertain point been incorrectly presented as a confirmed fact?
|
|
299
|
+
5. Has security or test sufficiency been judged too loosely without evidence?
|
|
300
|
+
6. Has a Docker non-execution boundary been incorrectly described as a confirmed runtime failure?
|
|
301
|
+
7. Has any material conclusion directly or indirectly relied on files under ./.tmp/?
|
|
302
|
+
|
|
303
|
+
If file writing is supported, save the final report as a markdown file.
|
|
304
|
+
Otherwise, return the report directly in the conversation.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
**8.2 Actual Implementation vs. Requirements Comparison**
|
|
2
|
+
|
|
3
|
+
| Requirement Item | Original Requirement | Actual Implementation | Exceeding Portion |
|
|
4
|
+
| :---- | :---- | :---- | :---- |
|
|
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**
|
|
36
|
+
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
**Self-Test Results \- Engineering and Architecture Quality**
|
|
2
|
+
**Project Positioning**
|
|
3
|
+
|
|
4
|
+
This is a full-stack canteen management system, including:
|
|
5
|
+
|
|
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.
|
|
8
|
+
|
|
9
|
+
**Technology Stack Selection**
|
|
10
|
+
|
|
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
|
|
18
|
+
|
|
19
|
+
**Overall Architecture Diagram**
|
|
20
|
+
|
|
21
|
+
*(Architecture diagram placeholder)*
|
|
22
|
+
|
|
23
|
+
**Architecture Description:**
|
|
24
|
+
|
|
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.
|
|
32
|
+
|
|
33
|
+
**Module Division (Clear Responsibilities)**
|
|
34
|
+
|
|
35
|
+
| Module | Responsibility | File |
|
|
36
|
+
| :---- | :---- | :---- |
|
|
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/ |
|
|
44
|
+
|
|
45
|
+
**Request Processing Flow**
|
|
46
|
+
|
|
47
|
+
*(Data flow diagram placeholder)*
|
|
48
|
+
|
|
49
|
+
**3.2 Architecture Quality Rating**
|
|
50
|
+
|
|
51
|
+
**Score: 9.0/10**
|
|
52
|
+
|
|
53
|
+
**Pros:**
|
|
54
|
+
|
|
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.
|
|
60
|
+
|
|
61
|
+
**Areas for Improvement:**
|
|
62
|
+
|
|
63
|
+
* Consider introducing a Service layer to decouple complex business logic from views.
|
|
64
|
+
* Consider using the Django REST Framework to provide API interfaces.
|
|
65
|
+
|
|
66
|
+
**3.3 Database Design**
|
|
67
|
+
|
|
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.
|
|
108
|
+
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Developer Rulebook
|
|
2
|
+
|
|
3
|
+
This file is the developer-facing operating rulebook for project execution.
|
|
4
|
+
|
|
5
|
+
## Scope
|
|
6
|
+
|
|
7
|
+
- Treat the current working directory as the project.
|
|
8
|
+
- Ignore files outside the current working directory unless the user explicitly asks you to use them.
|
|
9
|
+
- Do not use parent-directory files as hidden requirements.
|
|
10
|
+
|
|
11
|
+
## Working Style
|
|
12
|
+
|
|
13
|
+
- Operate like a senior software engineer with strong judgment and attention to detail.
|
|
14
|
+
- Plan before coding when the work is non-trivial.
|
|
15
|
+
- Build in meaningful vertical slices instead of scattering half-finished work across the codebase.
|
|
16
|
+
- Prefer reading the actual code and project state over inventing assumptions.
|
|
17
|
+
- Surface weak spots, risks, and missing information honestly.
|
|
18
|
+
- Do not call work complete when it is still shaky.
|
|
19
|
+
- Reuse and extend established cross-cutting patterns for errors, audit/logging, permissions, auth/session behavior, and state transitions where relevant instead of reinventing them per module.
|
|
20
|
+
- For complex security, offline, authorization, storage, or data-governance features, define what done means across all promised dimensions before implementing.
|
|
21
|
+
- When a requirement implies enforcement, persistence, statefulness, or rejection behavior, assume that behavior needs to be real unless it is explicitly scoped down.
|
|
22
|
+
- Before reporting foundational work complete, challenge whether the behavior is real at runtime or only present in visible shape through constants, headers, helper wiring, or partial middleware.
|
|
23
|
+
- Treat module completion as system-compatible completion, not isolated happy-path completion.
|
|
24
|
+
- If you discover a meaningful failing user-facing, release-facing, production-path, or build check, do not treat the slice as complete unless that check was explicitly scoped out.
|
|
25
|
+
- If a required user-facing or admin-facing flow cannot be exercised through its real surface, treat that as missing implementation rather than something to bypass with API shortcuts or test-only workarounds.
|
|
26
|
+
|
|
27
|
+
## Runtime And Verification Rules
|
|
28
|
+
|
|
29
|
+
- A heavy gate is an owner-run integrated verification boundary, not every ordinary phase change.
|
|
30
|
+
- Heavy gates normally include full clean runtime proof, full `run_tests.sh`, and Playwright plus screenshot evidence when UI or fullstack flows exist.
|
|
31
|
+
- Heavy gates are expected at scaffold acceptance, integrated/full verification, and post-evaluation remediation re-acceptance.
|
|
32
|
+
- Ordinary phase progression and module completion do not automatically mean rerunning every heavy-gate command.
|
|
33
|
+
- Treat Docker as the main runtime contract.
|
|
34
|
+
- `docker compose up --build` is the canonical startup path and must work when the project expects Dockerized execution.
|
|
35
|
+
- `run_tests.sh` is a required project test entrypoint and must exist and work.
|
|
36
|
+
- After scaffold is established, do not rerun full `docker compose up --build` and `run_tests.sh` on every small implementation step.
|
|
37
|
+
- During normal iteration, prefer the fastest meaningful local verification inside the current working directory using the project-appropriate test environment and tooling.
|
|
38
|
+
- If the local test toolchain is missing, try to install or enable it before falling back to `run_tests.sh`.
|
|
39
|
+
- Treat `docker compose up --build` and `run_tests.sh` as critical-gate verification commands, not normal per-turn iteration commands.
|
|
40
|
+
- The workflow owner handles those expensive critical-gate runs; focus on strong local verification during normal work so the gate passes succeed cleanly.
|
|
41
|
+
- After post-evaluation remediation, strengthen local verification and affected Playwright checks rather than rerunning every full gate command yourself unless explicitly required.
|
|
42
|
+
- Do not let unverified work accumulate.
|
|
43
|
+
|
|
44
|
+
## Testing Rules
|
|
45
|
+
|
|
46
|
+
- Tests must be real, meaningful, and tied to actual behavior.
|
|
47
|
+
- Cover happy paths, failure paths, and realistic edge cases.
|
|
48
|
+
- For API-bearing projects, prefer real endpoint invocation where practical.
|
|
49
|
+
- For backend integration tests, prefer production-equivalent infrastructure when practical instead of a weaker substitute that can hide real defects.
|
|
50
|
+
- For applicable frontend or fullstack work, run local Playwright against affected end-to-end flows during implementation and inspect screenshots to verify the UI actually matches.
|
|
51
|
+
- Do not pad the test suite with superficial or fake tests.
|
|
52
|
+
- If verification is weak, say so plainly and fix it.
|
|
53
|
+
|
|
54
|
+
## Frontend Product Integrity
|
|
55
|
+
|
|
56
|
+
- Do not place development, setup, scaffold, seed, or debug information in the product UI.
|
|
57
|
+
- Do not add demo banners, `database is working` messages, scaffold-password hints, setup reminders, or similar developer-facing content to frontend screens.
|
|
58
|
+
- If a screen exists, it should serve the real user or operator purpose it was created for.
|
|
59
|
+
- Keep setup and debug instructions in docs or operator tooling, not in the frontend interface.
|
|
60
|
+
|
|
61
|
+
## Documentation Rules
|
|
62
|
+
|
|
63
|
+
- Keep docs aligned with the current implementation.
|
|
64
|
+
- During development, keep working technical docs under `docs/`.
|
|
65
|
+
- Maintain a test-coverage document under `docs/` that explains the major flow coverage, the relevant test entry points, and any important coverage boundaries.
|
|
66
|
+
- Do not add or keep tests that only assert that docs directories or docs files exist.
|
|
67
|
+
- Delivery packaging may relocate docs, but that is not product behavior and should not be tested as application logic.
|
|
68
|
+
- Update technical docs when behavior, architecture, interfaces, runtime steps, or verification expectations change.
|
|
69
|
+
- The README must explain what the project is, how to run it, how to test it, and how to verify it.
|
|
70
|
+
- Do not leave misleading docs in place after changing behavior.
|
|
71
|
+
|
|
72
|
+
## Engineering Quality Rules
|
|
73
|
+
|
|
74
|
+
- Keep architecture intentional and boundaries clean.
|
|
75
|
+
- Avoid giant mixed-responsibility files and tangled logic.
|
|
76
|
+
- Treat validation, security boundaries, secret handling, and logging hygiene as baseline concerns.
|
|
77
|
+
- Fix obvious quality problems early instead of stacking them for later.
|
|
78
|
+
|
|
79
|
+
## Secret Handling Rules
|
|
80
|
+
|
|
81
|
+
- Do not persist local secrets anywhere in the repository.
|
|
82
|
+
- Do not hardcode credentials, API keys, tokens, signing material, database passwords, certificate private keys, or similar sensitive values in code.
|
|
83
|
+
- Keep committed env/config examples limited to placeholders or clearly non-production defaults.
|
|
84
|
+
- If a real secret is needed, inject it through Docker-managed runtime configuration and keep it out of committed source files.
|
|
85
|
+
- Do not leak raw secrets into logs, docs, screenshots, telemetry, or operator-facing UI.
|
|
86
|
+
- Treat frontend and backend observability paths as secret-sensitive by default and redact accordingly.
|
|
87
|
+
|
|
88
|
+
## Prototype Cleanup Rules
|
|
89
|
+
|
|
90
|
+
- Remove seeded credentials, weak demo defaults, login hints, test-account residue, and other prototype-only artifacts before reporting work complete.
|
|
91
|
+
- Do not leave login forms prefilled with credentials or keep obvious demo usernames/passwords in UI, config, or docs.
|
|
92
|
+
- Keep error surfaces sanitized for users and operators; do not leak internal paths, stack traces, database details, or hidden account-state details unless explicitly required.
|
|
93
|
+
|
|
94
|
+
## Communication Rules
|
|
95
|
+
|
|
96
|
+
- Be direct, honest, and technically clear.
|
|
97
|
+
- When reporting progress, explain what changed, what you verified, and what still looks weak or unfinished.
|
|
98
|
+
|
|
99
|
+
## Skills
|
|
100
|
+
|
|
101
|
+
- Before implementing against a library, framework, API, or tool, lean toward checking Context7 documentation first.
|
|
102
|
+
- If you need targeted outside research on a specific issue, behavior, example, or current fact, use Exa web search next.
|
|
103
|
+
- Then use the most relevant skill for the matter you are actively working on, or `find-skills` if the right skill is unclear.
|
|
104
|
+
- Use Context7, Exa, and skills to improve implementation quality, not as a substitute for engineering judgment.
|
|
105
|
+
|
|
106
|
+
## Avoid
|
|
107
|
+
|
|
108
|
+
- coding before thinking
|
|
109
|
+
- fake confidence
|
|
110
|
+
- fake tests
|
|
111
|
+
- shallow verification
|
|
112
|
+
- hidden setup
|
|
113
|
+
- documentation drift
|
|
114
|
+
- using files outside the current working directory as hidden requirements
|