IMPORTANT: GitHub Issues and pull requests are the authoritative trackers for this project. Do not create a parallel local issue database or markdown task list.
- Search existing GitHub issues and pull requests before creating new work.
- Link implementation work to the relevant issue or pull request.
- File newly discovered actionable work as a GitHub issue with reproduction details, scope, and acceptance criteria.
- Use labels, milestones, and cross-references to express priority, release scope, and dependencies.
- Close issues only after the work is complete and verified; otherwise document why the item is deferred or no longer applicable.
- Do not duplicate existing GitHub issues.
- Keep issue descriptions current when scope or reproduction steps change.
- Store AI-generated planning documents in
history/, not the repository root; the persistent rootIMPLEMENTATION.mdtracker described below is the exception. - ALWAYS run
coderabbit --plainbefore committing to catch issues early. - All commits must use the
taliesin-aiidentity. - Never push until the user gives explicit manual confirmation.
AI assistants often create planning and design documents during development:
- PLAN.md, IMPLEMENTATION.md, ARCHITECTURE.md
- DESIGN.md, CODEBASE_SUMMARY.md, INTEGRATION_PLAN.md
- TESTING_GUIDE.md, TECHNICAL_DESIGN.md, and similar files
Best Practice: Use a dedicated directory for these ephemeral files
Recommended approach:
- Create a
history/directory in the project root - Store all ephemeral AI-generated planning/design docs in
history/; keep the persistent rootIMPLEMENTATION.mdtracker in place - Keep the repository root clean and focused on permanent project files
- Only access
history/when explicitly asked to review past planning
Example .gitignore entry (optional):
# AI planning documents (ephemeral)
history/
Benefits:
- Clean repository root
- Clear separation between ephemeral and permanent documentation
- Easy to exclude from version control if desired
- Preserves planning history for archeological research
- Reduces noise when browsing the project
IMPORTANT: The IMPLEMENTATION.md file at the repository root is a persistent tracking document for the GTK4 / WebKitGTK 6.0 / GTK3-legacy implementation work. It is NOT an ephemeral planning document.
As of 2026-05-16 (issue #5459), GTK4 + WebKitGTK 6.0 is the default Linux stack; GTK3 + WebKit2GTK 4.1 is a legacy opt-in (-tags gtk3) for one v3 cycle and is scheduled for removal in v3.1. The default-flip rationale is recorded in IMPLEMENTATION.md Decision 1.1.
- Update with EVERY commit that touches GTK4/WebKitGTK 6.0 or legacy GTK3 code
- Track all architectural decisions with context, decision, and rationale
- Maintain progress status for each implementation phase
- Document API differences between the GTK4 default and GTK3 legacy paths
- Keep file references accurate and up-to-date
- Phase completion status (✅ COMPLETE, 🔄 IN PROGRESS, 📋 PENDING)
- New decisions made during implementation
- Files created or modified
- Changelog entries with dates
- TODO items discovered during work
When updating IMPLEMENTATION.md:
docs: update implementation tracker for [phase/feature]
When ending a work session, complete the applicable steps below. Never push without explicit manual confirmation from the user.
MANDATORY WORKFLOW:
- File issues for remaining work - Create issues for anything that needs follow-up
- Run quality gates (if code changed) - Tests, linters, builds
- Update issue status - Close finished work, update in-progress items
- Prepare for remote sync:
When the worktree is clean and synchronization is intended, run
git status
git pull --rebase. Rungit pushonly after the user explicitly confirms it. - Clean up - Review stashes and remove only obsolete ones; prune remote branches
- Verify - All intended changes are present and committed when requested
- Hand off - Provide context for next session
CRITICAL RULES:
- Use the
taliesin-aiidentity for every commit. - Do not push without explicit manual confirmation.
- Report clearly whether changes are uncommitted, committed locally, or pushed.