Guide for developers working on the ... project.
...
- Prefer simplicity over complexity
- Prefer modular structure over monolithic files. Keep files under 300 lines when possible.
- Security-first: encryption, audit logs, role-based access
- Maintain phased approach (MVP → full features)
- Keep documentation as source of truth
- Break large files into smaller, focused modules
- Separate concerns: business logic, data access, UI components
- Use clear, descriptive names
README.md- Setup and API examplesRELEASE.md- Release notes and fixes (update regularly)docs/sessions/- Development session logsdocs/changes/- Changes log entries for each releaseTASK.md(Overall task checklist and Task tracking)
- Read
docs/session/.current_sessionto check for an active development plan. - If a plan exists: Read the referenced plan file (e.g.,
docs/session/2026-02-13-1350_mock-plan.md). Understand the current sprint, completed tasks, and next tasks. - If no plan exists: Process the user request to work on. If the work is non-trivial, create a plan in
docs/session/first. - Check
TASK.mdfor overall project status and find the matching task section.
- Work on tasks from the active plan, following the sprint order.
- Update
TASK.md: Mark tasks as[/]in progress or[x]completed as you go. - Update the plan file: Check off completed items in the plan's task lists.
Revise the current plan in-place — do NOT create a new one.
- If the user gives feedback, points out a wrong approach, or requests changes:
- Edit the existing plan file — update the affected tasks to reflect the corrected approach.
- Add a dated note in the Findings/Progress section explaining what changed and why.
- Keep all unaffected remaining tasks intact.
- Only create a new plan if the scope has fundamentally changed (e.g., user requests an entirely different feature). Even then:
- Properly close the old plan: mark remaining items as
[-]deferred or→ moved to <new plan>. - List all carried-forward items in the new plan with a reference to the old plan.
- Never silently abandon unchecked items — every remaining task must be explicitly accounted for.
- Properly close the old plan: mark remaining items as
- Changing the approach to one task does not affect unrelated tasks — only modify the tasks that the feedback applies to. All other remaining work in the plan stays as-is.
- Summarize: Brief requirement, findings, work done (with suggested git commit message), recommendations, and next steps.
- Update the plan file: Check off completed items in the plan's task lists. Add short summaries or findings or recommendations to current sprint section to help remind future sessions. Remove outdated items (excluding completed tasks).
- Update
TASK.mdto reflect current state.
- Mark all tasks as
[x]in both the plan file andTASK.md. - Clear
docs/session/.current_session— remove the filename so it is empty. - The completed plan file stays in
docs/session/as a historical record.
- Check the current plan first — if
.current_sessionpoints to an active plan with remaining tasks, you must handle those tasks before starting a new plan (revise in-place, carry forward, or explicitly defer). Never silently replace an active plan. - Create plan file:
docs/session/YYYY-MM-DD-HHMM_short-description.md - Include: problem statement, scope, sprint breakdown with task checklists.
- If replacing an old plan, include a "Carried from" section listing deferred items and a reference to the old plan file.
- Add corresponding tasks to
TASK.md(concise entries only). - Write the plan filename into
docs/session/.current_session.
Remember: Always check current date/time with date command before writing date-related information