This commit implements a comprehensive reorganization of project documentation and adds explicit Gitea platform context throughout the project. ## Documentation Reorganization ### File Moves (Content Preserved) - Moved CURSOR_WINDOWS_SETUP.md to kb/_guides/ for better organization - Moved docs/PHASE-UPDATES/ to kb/_guides/PROJECT-SETUP-GUIDE/: - COMPLETE-SYSTEM-REPLICATION-GUIDE.md - PHASE-0-GITEA-UPDATES.md - README.md - Added new file: kb/_guides/PROJECT-SETUP-GUIDE/PHASE-1-PLAN.md **Reason**: Consolidate project setup and configuration guides into the knowledge base structure for better discoverability and organization. ### New Phase Documentation Structure Created tendril/phases/ directory with structured phase documentation: - phase-00-foundation/: blueprint, changelog, decisions, tasks - phase-01-testing-validation/: blueprint, changelog, decisions, tasks **Reason**: Establish consistent phase documentation structure following project guidelines for phase management and tracking. ## Gitea Platform Context Integration ### .cursorrules Updates - Added comprehensive Gitea platform context section - Added Gitea documentation references for workflows and platform questions - Added platform terminology guidelines (Gitea vs GitHub) - Added references to docs/GITEA/ documentation throughout rules **Reason**: Ensure all AI agents and contributors use correct Gitea terminology and have clear guidance on where to find Gitea-specific documentation. ### Documentation Path Updates - CONTRIBUTING.md: Updated CURSOR_WINDOWS_SETUP.md path reference - docs/AGENT-GUIDELINES.md: Updated path references to moved documentation - PROJECT_STATUS.md: Updated comment to mention Gitea Actions **Reason**: Maintain link integrity after file reorganization and ensure documentation references point to correct locations. ## Impact and Benefits 1. **Better Organization**: Documentation is now organized in logical structures (kb/ for knowledge base, tendril/phases/ for phase docs) 2. **Clear Platform Context**: Explicit Gitea platform references prevent confusion with GitHub terminology and provide clear documentation paths 3. **Consistent Structure**: Phase documentation follows standardized format (blueprint, changelog, decisions, tasks) for easier maintenance 4. **Improved Discoverability**: Guides consolidated in kb/_guides/ make it easier to find setup and configuration information All file moves preserve content - no information was lost in this reorganization.
310 lines
14 KiB
Plaintext
310 lines
14 KiB
Plaintext
# Cursor Rules for Tendril
|
|
|
|
## Phase Documentation Synchronization Rules
|
|
|
|
### MANDATORY: When blueprint.md is modified, automatically update related phase documents
|
|
|
|
When ANY file matching `tendril/phases/phase-*/blueprint.md` is edited or updated:
|
|
|
|
1. **ALWAYS check and update `changelog.md`** in the same phase directory:
|
|
- Add a new entry with today's date (YYYY-MM-DD format)
|
|
- Describe what changed in the blueprint
|
|
- Use format: `- **YYYY-MM-DD:** [Description of change]`
|
|
|
|
2. **ALWAYS check and update `tasks.md`** in the same phase directory:
|
|
- Sync task checkboxes with "Definition of Done" items from blueprint
|
|
- Sync task list with "Phase Deliverables" section from blueprint
|
|
- Ensure task status aligns with milestone statuses in blueprint
|
|
- Update phase status if blueprint status changed
|
|
|
|
3. **ALWAYS check `decisions.md`** in the same phase directory:
|
|
- If blueprint changes reflect new architectural decisions, add ADR entry
|
|
- If decisions are mentioned in blueprint but not in decisions.md, add them
|
|
- Review that existing ADRs still align with blueprint specifications
|
|
|
|
4. **ALWAYS verify consistency**:
|
|
- Project name matches across all phase documents
|
|
- Dates are consistent (or marked as TBD consistently)
|
|
- Team roles match where applicable
|
|
- Status indicators are aligned
|
|
|
|
#### When Gitea Actions workflows (`.github/workflows/*.yml`) are modified:
|
|
|
|
**Reference**: See `docs/GITEA/Gitea-Actions-Guide.md` for Gitea Actions workflow guidance and compatibility notes.
|
|
|
|
1. **ALWAYS update `.github/CHANGELOG.md`**:
|
|
- Document workflow changes, new triggers, or automation updates
|
|
- Note any changes to scheduled times or conditions
|
|
- Include affected workflow name and file path
|
|
|
|
2. **ALWAYS update `.github/decisions.md`** (if decision-related):
|
|
- Document the decision behind the workflow change
|
|
- Explain rationale and alternatives considered
|
|
- Note impact on automation
|
|
|
|
3. **ALWAYS update `.github/README.md`** (if structure or behavior changed):
|
|
- Update workflow descriptions if behavior changed significantly
|
|
- Add new workflows to overview section
|
|
- Remove references to deleted workflows
|
|
|
|
4. **ALWAYS verify workflow references**:
|
|
- Check that documentation references to workflows use correct file names
|
|
- Ensure workflow descriptions in docs match actual workflow logic
|
|
- Consult `docs/GITEA/Gitea-Actions-Guide.md` for workflow best practices
|
|
|
|
#### When `.github/` folder is modified (any file):
|
|
|
|
1. **ALWAYS update `.github/CHANGELOG.md`**:
|
|
- Document all changes to .github folder structure
|
|
- Include file paths and what changed
|
|
- Note if workflows, documentation, or structure was modified
|
|
|
|
2. **ALWAYS update `.github/decisions.md`** (if decision-related):
|
|
- Document decisions about .github folder structure
|
|
- Explain rationale for documentation organization
|
|
- Note impact on workflow maintenance
|
|
|
|
3. **ALWAYS update `.github/README.md`** (if structure or purpose changed):
|
|
- Update overview if folder structure changed
|
|
- Update workflow descriptions if documentation changed
|
|
- Ensure all workflows are listed in overview
|
|
|
|
### Specific Blueprint Change Triggers
|
|
|
|
When blueprint.md changes include:
|
|
- **Project name change** → Update all phase documents to reflect new name
|
|
- **Milestone status changes** → Update tasks.md and changelog.md
|
|
- **Deliverables completion** → Update tasks.md checkboxes and changelog.md
|
|
- **Team role assignments** → Update changelog.md if significant
|
|
- **Timeline changes** → Update changelog.md with reason
|
|
- **Scope changes** → Update decisions.md if architectural decision involved
|
|
- **Status changes** → Update tasks.md status line
|
|
|
|
### Workflow for Blueprint Updates
|
|
|
|
1. After editing blueprint.md, immediately:
|
|
- Read changelog.md, tasks.md, and decisions.md from the same phase directory
|
|
- Compare blueprint content with related documents
|
|
- Identify discrepancies or missing updates
|
|
- Update all related documents to maintain consistency
|
|
- Verify no information is lost (only added or synchronized)
|
|
|
|
2. Before completing any blueprint edit session:
|
|
- Confirm all related documents have been checked
|
|
- Confirm all necessary updates have been made
|
|
- **ALWAYS provide a summary** of what was updated:
|
|
* List each file that was modified
|
|
* Describe what changes were made to each file
|
|
* Note any files that were checked but didn't need updates
|
|
- **ALWAYS ask the user** if they want to push these changes to the remote repository
|
|
|
|
### Never Skip These Steps
|
|
|
|
- ❌ **NEVER delete files or folders when committing or pushing to the repository**
|
|
- ❌ NEVER edit blueprint.md without checking related documents
|
|
- ❌ NEVER leave related documents out of sync
|
|
- ❌ NEVER assume related documents are already updated
|
|
- ✅ ALWAYS read related documents before making changes
|
|
- ✅ ALWAYS update related documents in the same session
|
|
- ✅ ALWAYS verify consistency across all phase documents
|
|
|
|
## General Project Rules
|
|
|
|
- Always read phase blueprints before making changes
|
|
- **CRITICAL: NEVER delete files or folders when committing or pushing**
|
|
- **UNDER NO CIRCUMSTANCES** are you to delete files or folders whenever the user requests for you to commit from the local repo or push to the remote repo
|
|
- Commits and pushes should only include file modifications, additions, and updates
|
|
- If file deletion is needed, it must be explicitly requested by the user in a separate, clear request
|
|
- Never perform cleanup, organization, or deletion operations as part of commit/push workflows
|
|
- Update documentation incrementally, not at the end
|
|
- Follow the structure defined in `docs/AGENT-GUIDELINES.md`
|
|
- Use conventional commit messages with phase references
|
|
- Consult `docs/GITEA/` documentation for Gitea-specific guidance and platform questions
|
|
|
|
## Gitea Platform Context
|
|
|
|
**Repository**: https://git.parkingmeter.info/Mycelium/tendril
|
|
**Platform**: Gitea (self-hosted)
|
|
**Actions System**: Gitea Actions (compatible with GitHub Actions format)
|
|
|
|
### Gitea Documentation References
|
|
|
|
When working with Gitea-specific features, workflows, or platform questions:
|
|
|
|
1. **Consult Gitea Documentation**: See `docs/GITEA/` for comprehensive Gitea guidance
|
|
2. **LLM Guidelines**: See `docs/GITEA/LLM-Gitea-Guidelines.md` for LLM-specific guidelines
|
|
3. **Actions Guide**: See `docs/GITEA/Gitea-Actions-Guide.md` when working with workflows
|
|
4. **API Reference**: See `docs/GITEA/Gitea-API-Reference.md` for API differences
|
|
5. **Workflows Guide**: See `docs/GITEA/Gitea-Workflows.md` for common workflows and best practices
|
|
6. **Basics Guide**: See `docs/GITEA/Gitea-Basics.md` for core concepts and features
|
|
|
|
### Platform Terminology
|
|
|
|
- Use **"Gitea"** (not "GitHub") when referring to the platform
|
|
- Use **"Gitea Actions"** (not "GitHub Actions") but note compatibility when relevant
|
|
- Use **"Gitea issues"** (not "GitHub issues")
|
|
- Use **"Gitea repository"** (not "GitHub repository")
|
|
- Use **"Gitea Runners"** (not "GitHub Runners")
|
|
- **Note**: Gitea Actions is compatible with GitHub Actions, so workflows use the same YAML format and `.github/` directory structure
|
|
|
|
## KB Ingestion & Routing Rules
|
|
|
|
### MANDATORY: KB Ingestion System Behavior
|
|
|
|
When the chat starts with the text "SYSTEM — KB Ingestion & Routing" (from `/kb/_guides/KB_INGEST_PROMPT.md`), treat it as a system message and follow KB ingestion protocols.
|
|
|
|
### KB Write Scope & Constraints
|
|
|
|
**Assistant Rules:**
|
|
- Only create or update files under `/kb` except when explicitly asked otherwise
|
|
- Never modify files in `/kb/_guides` or `/kb/_templates`
|
|
- Enforce the filename pattern: `^\d{4}-\d{2}-\d{2}--[a-z0-9-]{3,}--(idea|note|spec|decision|howto|retro|meeting)\.md$`
|
|
- Before writing KB files, ensure YAML frontmatter contains all required keys: `title`, `date`, `captured_at`, `author`, `source`, `source_type`, `project`, `related_projects`, `topics`, `tags`, `type`, `status`, `phase_relevance`, `routing_hint`, `proposed_path`, `routing_confidence`, `related`, `summary`
|
|
- Include project-specific fields: `captured_at` (same as date), `source_type` (voice|web|pdf|image|personal_note|chat|pulse), `related_projects` (same as project), `phase_relevance[]` (array of phase-XX or empty)
|
|
- Optional fields: `key_takeaways[]`, `action_candidates[]`
|
|
- If the user pastes multiple unrelated chunks, split into separate files (max 5) and suffix with `--p1`, `--p2`, etc.
|
|
- If routing is ambiguous, write to `/kb/_inbox` and include `routing_hint` explaining uncertainty
|
|
- Respond with a single JSON code block as specified by the KB ingestion system prompt
|
|
- Default `author` is `["unknown author"]` if not specified
|
|
- Default `project` is `["tendril"]` for Tendril project
|
|
|
|
**User Guidelines:**
|
|
- Provide raw content after the system prompt
|
|
- Avoid mixing unrelated topics when possible
|
|
- Paste `/kb/_guides/KB_INGEST_PROMPT.md` contents as the first message in a Cursor chat before pasting any material
|
|
|
|
### KB System vs Research System
|
|
|
|
**When to use KB system (`/kb/`):**
|
|
- Pulse Daily chats and ideas
|
|
- Informal notes and thoughts about the project
|
|
- External information that may inform the project
|
|
- Project-level decisions (complements phase-specific ADRs)
|
|
- How-to guides and playbooks
|
|
- Glossary entries
|
|
- Design ideas and UX concepts
|
|
|
|
**When to use Research system (`tendril/research/notes/` or equivalent):**
|
|
- Formal research articles, papers, and web content
|
|
- Content that will be actively researched and indexed
|
|
- Research materials that go through ingestion pipeline
|
|
- Content requiring full research metadata schema
|
|
|
|
**Integration:**
|
|
- KB entries can reference project phases via `phase_relevance[]` field
|
|
- KB decisions complement (not replace) phase-specific ADRs
|
|
- KB entries use aligned metadata schema for compatibility
|
|
|
|
### KB Workflow Maintenance
|
|
|
|
**When KB structure or guidelines change:**
|
|
- Check and update Gitea Actions workflows (`.github/workflows/kb-lint.yml`) if KB validation rules change
|
|
- Consult `docs/GITEA/Gitea-Actions-Guide.md` for workflow guidance
|
|
- Check and update README.md if KB system is added or significantly modified
|
|
- Ensure workflows stay in sync with KB guidelines in `/kb/_guides/`
|
|
|
|
### KB Index Check Requirements
|
|
|
|
**MANDATORY: Pre-Planning KB Check**
|
|
|
|
Before starting any planning or development work, ALWAYS:
|
|
|
|
1. **Read `kb/README.md`** to understand the KB system (if first time working with KB)
|
|
2. **Read `kb/_index.md`** to check for relevant KB content
|
|
3. **Search `kb/_index.md`** for keywords related to current task:
|
|
- Check topics index for relevant topics
|
|
- Check tags index for relevant tags
|
|
- Search file titles and summaries
|
|
- Check relevant categories (e.g., decisions, specs, research)
|
|
- Check phase relevance index for content related to current phase
|
|
4. **If relevant KB content found:**
|
|
- List specific KB files that might be relevant (with paths from index)
|
|
- Summarize relevant entries from index (title, summary, topics, tags, phase relevance)
|
|
- Ask user if they want to incorporate KB knowledge into current work
|
|
- If user confirms, read the actual KB files referenced in index
|
|
- Reference KB files in documentation or code comments when appropriate
|
|
|
|
**KB Index and Changelog Update Requirement**
|
|
|
|
**MANDATORY:** After creating, modifying, or deleting ANY file in `kb/` (except `_guides/`, `_templates/`, `README.md`, `_index.md`, and `CHANGELOG.md`):
|
|
|
|
1. **Run index generation script:**
|
|
```bash
|
|
kb/scripts/generate-index.sh
|
|
```
|
|
- This regenerates `kb/_index.md` with current KB content
|
|
- Verify the script completes successfully
|
|
- Check that changes appear in `kb/_index.md`
|
|
|
|
2. **Update KB changelog:**
|
|
- Add entry to `kb/CHANGELOG.md` with date-based format:
|
|
```markdown
|
|
## [YYYY-MM-DD] KB File Added/Modified/Deleted
|
|
|
|
### Added/Changed/Removed
|
|
- `kb/XX_category/filename.md` - [Brief description]
|
|
```
|
|
- Use today's date (YYYY-MM-DD format)
|
|
- Include the full file path relative to repository root
|
|
- Provide a brief description (1-2 sentences) of what changed
|
|
|
|
3. **Commit all changes together:**
|
|
- Commit KB file change, index update, and changelog entry together
|
|
- Use commit message: `docs(kb): [action] [filename-slug] and update index/changelog`
|
|
- Examples:
|
|
- `docs(kb): add api-auth-decision and update index/changelog`
|
|
- `docs(kb): update cursor-workflow and update index/changelog`
|
|
- `docs(kb): remove obsolete-note and update index/changelog`
|
|
|
|
4. **Note:** Gitea Actions will auto-update index on push to main, but local updates should also regenerate index. Changelog updates are always manual and must be done locally.
|
|
|
|
**NEVER skip these steps** - Both index and changelog updates are mandatory for KB system integrity.
|
|
|
|
## README Maintenance Rules
|
|
|
|
### MANDATORY: Check and Update README After Work Completion
|
|
|
|
**After completing ANY work session that involves:**
|
|
- Phase blueprint updates
|
|
- Phase status changes
|
|
- New deliverables or features
|
|
- Directory structure changes
|
|
- Project name or description changes
|
|
- Major architectural decisions
|
|
|
|
**You MUST:**
|
|
|
|
1. **Read the current README.md** to understand its current state
|
|
|
|
2. **Check if updates are needed** by verifying:
|
|
- Phase statuses are accurate (✅ Complete, 🔄 In Progress, ⏳ Planned)
|
|
- Phase names match current blueprints
|
|
- Directory structure reflects actual project layout
|
|
- Links to phase blueprints are correct
|
|
- Project description matches current state
|
|
- Getting Started section is accurate
|
|
|
|
3. **Update README.md if any of the following changed:**
|
|
- Phase status (e.g., Phase 1 moved from Planned to In Progress)
|
|
- Phase names or descriptions
|
|
- Project structure (new directories, renamed files)
|
|
- Project name or branding
|
|
- Key features or capabilities
|
|
- Documentation links or paths
|
|
|
|
4. **Before completing work session:**
|
|
- Confirm README.md has been checked
|
|
- Update README.md if needed
|
|
- Verify all links in README.md are valid
|
|
- Ensure README.md accurately reflects current project state
|
|
|
|
### Never Skip README Updates
|
|
|
|
- ❌ NEVER complete work without checking README.md
|
|
- ❌ NEVER leave README.md out of sync with project state
|
|
- ❌ NEVER assume README.md is already up to date
|
|
- ✅ ALWAYS check README.md after making significant changes
|
|
- ✅ ALWAYS update README.md when phase statuses change
|
|
- ✅ ALWAYS verify README.md accuracy before committing
|
|
|