Compare commits
5 Commits
1.0.0
...
38916b026d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
38916b026d | ||
|
|
f2e11e74e1 | ||
|
|
03cb869a0a | ||
|
|
501e064711 | ||
|
|
7f6c0292cb |
25
.cursor/README.md
Normal file
25
.cursor/README.md
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# Cursor Rules for BSC Score (Astro Web App)
|
||||||
|
|
||||||
|
## Summary of Rule Adaptations
|
||||||
|
|
||||||
|
This project uses the Cursor rules system to enforce best practices and workflow discipline. The following summarizes the rule adaptations, removals, and additions for this project:
|
||||||
|
|
||||||
|
### Enforced Rules
|
||||||
|
- All general development, git workflow, Gitea usage, discipline, and best practices rules are enforced.
|
||||||
|
- **best-practices-astro.mdc** is enforced, as the project is built with Astro.
|
||||||
|
- Type safety and code quality rules are relevant due to the use of TypeScript (via Astro's strict config).
|
||||||
|
|
||||||
|
### Not Relevant / Not Present
|
||||||
|
- No CLI, API, or data science rules are present or required, as this is a web application only.
|
||||||
|
- No rules were removed, as all present rules are applicable to the project domain.
|
||||||
|
|
||||||
|
### Project-Specific Adaptations
|
||||||
|
- See `.cursor/rules/project-adaptations.mdc` for a detailed rationale and documentation of all rule adaptations and exceptions.
|
||||||
|
|
||||||
|
### Maintenance
|
||||||
|
- When central rules are updated, all `.mdc` files in `.cursor/rules` should be re-reviewed and project-specific adaptations re-applied.
|
||||||
|
- If any conflicts or ambiguities arise, manual review will be requested.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
This README documents the current state of rule enforcement and adaptation for the BSC Score project. For further details, consult the individual rule files in `.cursor/rules/` and the project adaptation summary.
|
||||||
15
.cursor/rules/best-practices.mdc
Normal file
15
.cursor/rules/best-practices.mdc
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
description:
|
||||||
|
globs:
|
||||||
|
alwaysApply: true
|
||||||
|
---
|
||||||
|
- Write clean, readable, and maintainable code
|
||||||
|
- Follow SOLID principles and DRY (Don't Repeat Yourself)
|
||||||
|
- Use meaningful variable and function names that explain their purpose
|
||||||
|
- Add comments for complex logic, but prefer self-documenting code
|
||||||
|
- Handle errors gracefully with proper error handling
|
||||||
|
- Implement proper logging and debugging practices
|
||||||
|
- Use consistent indentation and formatting
|
||||||
|
- Avoid deep nesting - prefer early returns and guard clauses
|
||||||
|
- Keep functions small and focused on single responsibilities
|
||||||
|
- Use type safety when available (TypeScript, JSDoc, etc.)
|
||||||
40
.cursor/rules/dev-folder.mdc
Normal file
40
.cursor/rules/dev-folder.mdc
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
---
|
||||||
|
description:
|
||||||
|
globs:
|
||||||
|
alwaysApply: true
|
||||||
|
---
|
||||||
|
# /dev Folder Rules
|
||||||
|
|
||||||
|
## Resource Management Protocol
|
||||||
|
- Resources in `/dev` are staging materials that require processing before production use
|
||||||
|
- NEVER automatically copy resources from `/dev` to production locations
|
||||||
|
- ONLY move or process `/dev` resources when explicitly instructed by user
|
||||||
|
- Maintain original files in `/dev` unless specifically told to remove them
|
||||||
|
|
||||||
|
## Quick and Dirty (QnD) Scripts Protocol
|
||||||
|
- `/dev` is the designated location for quick prototyping scripts
|
||||||
|
- QnD scripts in `/dev` don't need to follow full production code standards
|
||||||
|
- Focus on functionality over code quality for QnD scripts
|
||||||
|
- Document script purpose with minimal comments
|
||||||
|
- Use descriptive filenames that indicate script function
|
||||||
|
- QnD scripts should be marked clearly (e.g., `qnd_` prefix or `.qnd.` in filename)
|
||||||
|
|
||||||
|
## Proof of Concept (POC) Protocol
|
||||||
|
- All POC development happens exclusively in `/dev`
|
||||||
|
- POC code should be isolated from production codebase
|
||||||
|
- POC code can be experimental and doesn't require full error handling
|
||||||
|
- When POC is approved for production, create separate implementation outside `/dev`
|
||||||
|
|
||||||
|
## Temporary Files Management
|
||||||
|
- Use `/dev` for all temporary files created during development process
|
||||||
|
- User-created temporary files can be placed directly in `/dev`
|
||||||
|
|
||||||
|
## Safety and Cleanup Rules
|
||||||
|
- NEVER delete files from `/dev` without explicit user permission
|
||||||
|
- Ask before moving files out of `/dev` to production locations
|
||||||
|
- Maintain clear separation between `/dev` content and production code
|
||||||
|
|
||||||
|
## Exclusions and Restrictions
|
||||||
|
- Production builds should NEVER reference files directly from `/dev`
|
||||||
|
- `/dev` paths should not be hardcoded in production configuration
|
||||||
|
- `/dev` is not for production dependencies or critical system files
|
||||||
46
.cursor/rules/discipline.mdc
Normal file
46
.cursor/rules/discipline.mdc
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
---
|
||||||
|
description:
|
||||||
|
globs:
|
||||||
|
alwaysApply: true
|
||||||
|
---
|
||||||
|
# Development Discipline Rules
|
||||||
|
|
||||||
|
## Precision Over Presumption
|
||||||
|
- NEVER add functionality that wasn't explicitly requested
|
||||||
|
- NEVER speculate beyond the current scope of work
|
||||||
|
- NEVER assume requirements or extend beyond stated needs
|
||||||
|
- If uncertain about any aspect, state "I don't know" rather than guessing
|
||||||
|
- Stick to the exact scope defined in the request
|
||||||
|
|
||||||
|
## File Modification Protocol
|
||||||
|
- NEVER modify files if the user's prompt ends with a question mark (?)
|
||||||
|
- NEVER assume permission to refactor existing code
|
||||||
|
- Only modify files when explicitly instructed to do so
|
||||||
|
- Always ask for permission before making structural changes
|
||||||
|
|
||||||
|
## Code Quality Enforcement (Zero Tolerance)
|
||||||
|
- Every line of code must be bug-free, secure, and maintainable
|
||||||
|
- Violations of DRY (Don't Repeat Yourself) are unacceptable
|
||||||
|
- Violations of KISS (Keep It Simple, Stupid) are unacceptable
|
||||||
|
- Code must be self-documenting with meaningful names
|
||||||
|
- Comments should explain "why" not "what"
|
||||||
|
- Names must reveal intent clearly
|
||||||
|
|
||||||
|
## Technical Standards (Non-Negotiable)
|
||||||
|
- Correctness takes priority over performance
|
||||||
|
- Readability is paramount in all code decisions
|
||||||
|
- Every solution must include:
|
||||||
|
- Comprehensive error handling
|
||||||
|
- Input validation
|
||||||
|
- Consideration of failure modes
|
||||||
|
- Edge case handling
|
||||||
|
- Design pattern choices must be justified (e.g., "Using Factory pattern here because...")
|
||||||
|
|
||||||
|
## Violation Response Protocol
|
||||||
|
- If a rule conflicts with a user request:
|
||||||
|
1. Clearly state the specific conflict
|
||||||
|
2. Refuse the action until the conflict is resolved
|
||||||
|
3. Provide alternative approaches if possible
|
||||||
|
- Example responses:
|
||||||
|
- "This would violate DRY principle because... Alternative approach: ..."
|
||||||
|
- "Cannot modify files - prompt ends with '?'. Did you mean to ask a question instead?"
|
||||||
40
.cursor/rules/git-workflow.mdc
Normal file
40
.cursor/rules/git-workflow.mdc
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
---
|
||||||
|
description:
|
||||||
|
globs:
|
||||||
|
alwaysApply: true
|
||||||
|
---
|
||||||
|
# Git Workflow Rules
|
||||||
|
|
||||||
|
## Zero Autonomy on Git Operations
|
||||||
|
- NEVER stage, commit, or push code without explicit user instruction
|
||||||
|
- NEVER assume permission to perform git operations
|
||||||
|
- If asked about git status, only provide information - do not take action
|
||||||
|
|
||||||
|
## Commit Protocol (When Explicitly Asked)
|
||||||
|
When user requests a commit, follow this exact sequence:
|
||||||
|
|
||||||
|
1. **Review Phase**:
|
||||||
|
- List ALL modified files with their status (M/A/D)
|
||||||
|
- List ALL added files that will be staged
|
||||||
|
- List ALL deleted files
|
||||||
|
- Check for any files that should be included but aren't staged
|
||||||
|
|
||||||
|
2. **Summary Phase**:
|
||||||
|
- Generate commit title (≤50 characters, imperative mood)
|
||||||
|
- Create detailed bulleted summary including:
|
||||||
|
- Which files were changed and how
|
||||||
|
- What logic was modified/added/removed
|
||||||
|
- Impact of changes on functionality
|
||||||
|
- Purpose statement (e.g., "Fix race condition" → "Patches race condition in user authentication flow")
|
||||||
|
|
||||||
|
3. **Confirmation Phase**:
|
||||||
|
- Present the complete commit message for approval
|
||||||
|
- Show exactly what will be committed
|
||||||
|
- Wait for explicit confirmation before executing
|
||||||
|
- If user rejects, ask for specific changes to the commit message
|
||||||
|
|
||||||
|
## Git Safety Rules
|
||||||
|
- If no changes detected when asked to commit: "No changes detected. Aborting as per Git rules."
|
||||||
|
- If conflicts exist, report them but do not resolve without instruction
|
||||||
|
- Never force push or use destructive git operations
|
||||||
|
- Always use conventional commit format when generating messages
|
||||||
43
.cursor/rules/gitea-usage.mdc
Normal file
43
.cursor/rules/gitea-usage.mdc
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
---
|
||||||
|
description:
|
||||||
|
globs:
|
||||||
|
alwaysApply: true
|
||||||
|
---
|
||||||
|
# Gitea Usage Rules
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
Establish disciplined, transparent, and user-aligned protocols for using Gitea, especially regarding issue management and traceability between code and issues.
|
||||||
|
|
||||||
|
## Rules
|
||||||
|
|
||||||
|
1. **Stick to the Current Selected Issue**
|
||||||
|
- Always work with a clearly selected, active Gitea issue.
|
||||||
|
- All code changes must be associated with the currently selected issue.
|
||||||
|
- If you need to switch issues, document the switch and update the new issue context before proceeding.
|
||||||
|
|
||||||
|
2. **Update Issues After Commits**
|
||||||
|
- After every commit, update the relevant Gitea issue(s) with a summary of the changes made.
|
||||||
|
- Include references to commit hashes and affected files or features.
|
||||||
|
- If the commit resolves or partially addresses the issue, state this explicitly in the issue update.
|
||||||
|
|
||||||
|
3. **Link Commits in Issues**
|
||||||
|
- Every commit message must reference the relevant Gitea issue by its number (e.g., `Fixes #42` or `Refs #42`).
|
||||||
|
- When updating an issue, include direct links to the commit(s) in Gitea for traceability.
|
||||||
|
- Use Gitea's markdown syntax to create clickable links to commits and related issues.
|
||||||
|
|
||||||
|
4. **Issue-Driven Workflow**
|
||||||
|
- Do not make code changes without an associated issue.
|
||||||
|
- If a new task arises, create a Gitea issue before starting work.
|
||||||
|
- Use issues to track discussions, decisions, and progress.
|
||||||
|
|
||||||
|
5. **Responsibility for Issue Hygiene**
|
||||||
|
- Keep issue status, labels, and assignees up to date.
|
||||||
|
- Close issues only when fully resolved and after confirming with all stakeholders if needed.
|
||||||
|
- Document any ambiguity or blockers in the issue before pausing or switching context.
|
||||||
|
|
||||||
|
6. **Current Issue Tracking via .gitea File**
|
||||||
|
- A file named `.gitea` can exist in the project root, containing the URL of the currently selected Gitea issue (e.g., `https://gitea.schwenk.online/froxxxy/vfbred/issues/3`).
|
||||||
|
- The AI assistant will read this file to determine the current project name and issue number for all Gitea-related operations.
|
||||||
|
|
||||||
|
## Rationale
|
||||||
|
These rules ensure that all work is traceable, communication is clear, and project history is auditable. They foster accountability and make onboarding, reviews, and audits more efficient.
|
||||||
39
.cursor/rules/installation.mdc
Normal file
39
.cursor/rules/installation.mdc
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
description:
|
||||||
|
globs:
|
||||||
|
alwaysApply: false
|
||||||
|
---
|
||||||
|
# Cursor Rules Automated Installation & Configuration Guide
|
||||||
|
|
||||||
|
You are to follow these instructions after this `rules` folder has been copied into the project's `.cursor` directory. Your goal is to configure and adapt the rules for this specific project with minimal manual intervention.
|
||||||
|
|
||||||
|
## 1. Review Rule Files
|
||||||
|
- Read all `.mdc` files in `.cursor/rules`.
|
||||||
|
- Identify any rules that are not relevant to this project's framework, language, or domain.
|
||||||
|
- List which files should be removed, renamed, or adapted, and propose new rules if needed.
|
||||||
|
|
||||||
|
## 2. Adaptation
|
||||||
|
- For each rule that requires adaptation (e.g., framework-specific best practices), generate a new `.mdc` file (e.g., `best-practices-react.mdc`, `best-practices-python.mdc`) with appropriate content.
|
||||||
|
- Remove or archive irrelevant rules (e.g., Astro-specific rules in a non-Astro project).
|
||||||
|
- If the project is not web-based, create domain-specific rules (e.g., `cli-ux.mdc`, `api-design.mdc`, `data-best-practices.mdc`).
|
||||||
|
|
||||||
|
## 3. Project-Specific Customization
|
||||||
|
- Analyze the project structure and requirements.
|
||||||
|
- Create a `project-adaptations.mdc` file summarizing any overrides, extensions, or exceptions to the default rules.
|
||||||
|
- Document all changes and the reasoning behind them.
|
||||||
|
|
||||||
|
## 4. Documentation
|
||||||
|
- Update `.cursor/README.md` to summarize all rule adaptations, removals, and additions.
|
||||||
|
- Clearly state which rules are overridden, ignored, or extended for this project.
|
||||||
|
|
||||||
|
## 5. Maintenance
|
||||||
|
- When the central rules are updated, re-read all `.mdc` files in `.cursor/rules`.
|
||||||
|
- Re-apply project-specific adaptations and update documentation as needed.
|
||||||
|
- Alert the user if any manual review is required due to conflicts or ambiguities.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**General Principle:**
|
||||||
|
- Automate as much of the review, adaptation, and documentation process as possible.
|
||||||
|
- Only request user input if clarification or conflict resolution is required.
|
||||||
|
|
||||||
12
.cursor/rules/mcp-usage.mdc
Normal file
12
.cursor/rules/mcp-usage.mdc
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
description:
|
||||||
|
globs:
|
||||||
|
alwaysApply: true
|
||||||
|
---
|
||||||
|
- Use Model Context Protocol (MCP) servers when available and appropriate
|
||||||
|
- Leverage MCP for enhanced functionality like file system operations, API integrations, or specialized tools
|
||||||
|
- Prefer MCP-based solutions over manual implementations when MCP servers are available
|
||||||
|
- Utilize MCP for better context awareness and cross-system integration
|
||||||
|
- Check for available MCP servers before implementing custom solutions
|
||||||
|
- Use MCP for database operations, external API calls, and system integrations when possible
|
||||||
|
- Ensure MCP usage aligns with security best practices and project requirements
|
||||||
12
.cursor/rules/prd-alignment.mdc
Normal file
12
.cursor/rules/prd-alignment.mdc
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
description:
|
||||||
|
globs:
|
||||||
|
alwaysApply: true
|
||||||
|
---
|
||||||
|
- Always reference and stay aligned with the requirements in [prd.md](mdc:docs/prd.md)
|
||||||
|
- Before making any significant changes, verify they align with the PRD specifications
|
||||||
|
- If a proposed change conflicts with the PRD, flag it and ask for clarification
|
||||||
|
- Ensure all new features and modifications serve the goals outlined in the PRD
|
||||||
|
- Maintain consistency with the project scope and user stories defined in the PRD
|
||||||
|
- Consider the technical requirements and constraints mentioned in the PRD
|
||||||
|
- Validate that implementations match the expected user experience described in the PRD
|
||||||
26
.cursor/rules/project-adaptations.mdc
Normal file
26
.cursor/rules/project-adaptations.mdc
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
description:
|
||||||
|
globs:
|
||||||
|
alwaysApply: false
|
||||||
|
---
|
||||||
|
# Project-Specific Rule Adaptations for BSC Score (Astro Web App)
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
This project is a modern, responsive web application for tracking billiards scores, built with Astro and vanilla JavaScript. The following adaptations and exceptions apply to the default Cursor rules:
|
||||||
|
|
||||||
|
## Rule Adaptations & Removals
|
||||||
|
|
||||||
|
- **best-practices-astro.mdc**: Kept and enforced, as the project is built with Astro.
|
||||||
|
- **CLI/API/Non-Web Rules**: No CLI, API, or data science rules are needed. No such rules exist in the current ruleset, so no removals are required.
|
||||||
|
- **All Other Rules**: All other rules are relevant and retained, as they apply to general development, git workflow, Gitea usage, discipline, and best practices for web projects.
|
||||||
|
|
||||||
|
## Reasoning
|
||||||
|
- The project is a web application using Astro, so Astro-specific best practices are required.
|
||||||
|
- There is no CLI, API, or non-web domain logic, so no domain-specific rules for those are needed.
|
||||||
|
- TypeScript is supported via Astro's strict config, so type safety rules are relevant.
|
||||||
|
|
||||||
|
## Overrides/Extensions
|
||||||
|
- No overrides or extensions are currently required. If the project scope changes (e.g., adds an API or CLI), new rules will be proposed.
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
- This file documents the rationale for rule selection and adaptation. All changes are summarized in .cursor/README.md as required.
|
||||||
11
.cursor/rules/questions-handling.mdc
Normal file
11
.cursor/rules/questions-handling.mdc
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
description:
|
||||||
|
globs:
|
||||||
|
alwaysApply: true
|
||||||
|
---
|
||||||
|
- When questions are asked, provide clear and comprehensive answers
|
||||||
|
- Do NOT make any code changes, file modifications, or implementations when answering questions
|
||||||
|
- Focus solely on explaining concepts, providing guidance, or clarifying requirements
|
||||||
|
- If examples are needed, present them as explanatory code blocks, not as file changes
|
||||||
|
- Ask for explicit confirmation before making any modifications to the codebase
|
||||||
|
- Separate informational responses from actionable requests clearly
|
||||||
54
.cursor/rules/senior-developer-protocol.mdc
Normal file
54
.cursor/rules/senior-developer-protocol.mdc
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
---
|
||||||
|
description:
|
||||||
|
globs:
|
||||||
|
alwaysApply: true
|
||||||
|
---
|
||||||
|
# Senior Developer Protocol Rules
|
||||||
|
|
||||||
|
## Expert-Level Assumption
|
||||||
|
- Assume user has expert-level technical competence
|
||||||
|
- NEVER explain basic programming concepts unless explicitly asked
|
||||||
|
- Phrases like "As you know..." are forbidden
|
||||||
|
- No patronizing simplifications - provide raw technical depth
|
||||||
|
- Prioritize implementation over theory unless explicitly requested
|
||||||
|
- Code examples > lengthy explanations
|
||||||
|
|
||||||
|
## Absolute Truthfulness Protocol
|
||||||
|
- NEVER lie by omission, approximation, or fabrication
|
||||||
|
- If uncertain about anything:
|
||||||
|
- Use "I don't know" as a hard stop - no guessing allowed
|
||||||
|
- Flag unverified information with "UNVERIFIED:" prefix
|
||||||
|
- If solution is suboptimal or controversial:
|
||||||
|
- "The standard approach is X, but it fails for Y. Here's why Z might be better, but risks A."
|
||||||
|
|
||||||
|
## No False Certainty
|
||||||
|
- Reject binary answers for ambiguous problems
|
||||||
|
- Use phrases like: "There's no consensus on this—here are the tradeoffs..."
|
||||||
|
- Always expose unknowns: "This answer depends on [unconfirmed variable]. Without testing, we can't be sure."
|
||||||
|
- Acknowledge when multiple valid approaches exist
|
||||||
|
|
||||||
|
## Correctness Over Politeness
|
||||||
|
- If user request has flaws (anti-patterns, security risks):
|
||||||
|
- "WARNING: This approach would cause X due to Y. Alternatives: A, B."
|
||||||
|
- If better tools/libraries exist:
|
||||||
|
- "You asked for X, but Y is industry-standard because... Shall I proceed with X anyway?"
|
||||||
|
- Challenge problematic requests directly and professionally
|
||||||
|
|
||||||
|
## Proof of Work Requirements
|
||||||
|
For complex answers, provide:
|
||||||
|
- Citations from official documentation or RFCs
|
||||||
|
- Benchmarks if performance is critical
|
||||||
|
- Explicit testing recommendations: "This is untested—would you like a prototype to validate?"
|
||||||
|
- References to industry standards and best practices
|
||||||
|
|
||||||
|
## Response Prefixes (Mandatory)
|
||||||
|
- Use "UNVERIFIED:" for uncertain information
|
||||||
|
- Use "OPINION:" for subjective recommendations
|
||||||
|
- Use "WARNING:" for potentially problematic approaches
|
||||||
|
- Use "UNTESTED:" for theoretical solutions
|
||||||
|
|
||||||
|
## Conflict Resolution
|
||||||
|
- If request is impossible or contradictory:
|
||||||
|
- "INVALID: This violates [principle X] because [Y]. Aborting."
|
||||||
|
- Provide clear reasoning for refusal
|
||||||
|
- Offer alternative approaches when possible
|
||||||
44
.cursor/rules/thinking-process.mdc
Normal file
44
.cursor/rules/thinking-process.mdc
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
---
|
||||||
|
description:
|
||||||
|
globs:
|
||||||
|
alwaysApply: true
|
||||||
|
---
|
||||||
|
# Thinking Process Rules
|
||||||
|
|
||||||
|
## Exploration First Protocol
|
||||||
|
- Always show uncertainty and reasoning process
|
||||||
|
- Use phrases like: "I'm debating between X and Y because..."
|
||||||
|
- Document failed approaches: "Approach A failed due to B; pivoting to C."
|
||||||
|
- Make the decision-making process transparent and auditable
|
||||||
|
|
||||||
|
## Atomic Step Reasoning
|
||||||
|
- Break down complex reasoning into numbered, simple sentences
|
||||||
|
- Show progression of thought clearly
|
||||||
|
- Revise thinking publicly: "Earlier I thought X, but now Y makes more sense because..."
|
||||||
|
- Each step should be independently understandable
|
||||||
|
|
||||||
|
## Proactive Problem Anticipation
|
||||||
|
- Propose unrequested but relevant solutions when critical
|
||||||
|
- Use format: "You didn't ask for error handling, but Z is critical because..."
|
||||||
|
- Identify potential issues before they become problems
|
||||||
|
- Suggest complementary improvements that align with the main request
|
||||||
|
|
||||||
|
## Auditable Decision Trail
|
||||||
|
- Document why specific approaches were chosen over alternatives
|
||||||
|
- Show trade-off analysis: "Chose X over Y because of performance, but sacrifices readability"
|
||||||
|
- Include decision context: "Given constraints A and B, solution C is optimal"
|
||||||
|
- Make it easy to understand the reasoning behind technical choices
|
||||||
|
|
||||||
|
## Iterative Refinement Process
|
||||||
|
- Start with initial assessment
|
||||||
|
- Show how understanding evolves
|
||||||
|
- Document assumption changes
|
||||||
|
- Acknowledge when new information changes conclusions
|
||||||
|
- Example: "Initial analysis suggested X, but considering constraint Y, Z is actually better"
|
||||||
|
|
||||||
|
## Question Protocol Integration
|
||||||
|
- When user prompt starts with "QUESTION":
|
||||||
|
- Provide thorough answer using above thinking process
|
||||||
|
- Do NOT modify any files
|
||||||
|
- Focus entirely on explanation and reasoning
|
||||||
|
- Make thinking process visible in the response
|
||||||
1
.gitea
Normal file
1
.gitea
Normal file
@@ -0,0 +1 @@
|
|||||||
|
@https://gitea.schwenk.online/froxxxy/bscscore/issues/1
|
||||||
27
.gitignore
vendored
Normal file
27
.gitignore
vendored
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# build output
|
||||||
|
dist/
|
||||||
|
# generated types
|
||||||
|
.astro/
|
||||||
|
|
||||||
|
# dependencies
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# logs
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
pnpm-debug.log*
|
||||||
|
|
||||||
|
|
||||||
|
# environment variables
|
||||||
|
.env
|
||||||
|
.env.production
|
||||||
|
|
||||||
|
# macOS-specific files
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
# jetbrains setting folder
|
||||||
|
.idea/
|
||||||
|
|
||||||
|
.gitea
|
||||||
|
dev/
|
||||||
0
.gitmodules
vendored
Normal file
0
.gitmodules
vendored
Normal file
4
.vscode/extensions.json
vendored
Normal file
4
.vscode/extensions.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"recommendations": ["astro-build.astro-vscode"],
|
||||||
|
"unwantedRecommendations": []
|
||||||
|
}
|
||||||
11
.vscode/launch.json
vendored
Normal file
11
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"command": "./node_modules/.bin/astro dev",
|
||||||
|
"name": "Development server",
|
||||||
|
"request": "launch",
|
||||||
|
"type": "node-terminal"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
89
TODO.md
89
TODO.md
@@ -1,89 +0,0 @@
|
|||||||
# TODO List
|
|
||||||
|
|
||||||
## High Priority
|
|
||||||
1. Add game statistics
|
|
||||||
- Track win/loss ratio per player
|
|
||||||
- Show total games played
|
|
||||||
- Display average scores
|
|
||||||
- Show favorite game types per player
|
|
||||||
|
|
||||||
2. Implement game history
|
|
||||||
- Log score changes with timestamps
|
|
||||||
- Show who made which changes
|
|
||||||
- Allow reviewing game progression
|
|
||||||
|
|
||||||
3. Add confirmation for game completion
|
|
||||||
- Show final score summary
|
|
||||||
- Display winner announcement
|
|
||||||
- Option to undo completion
|
|
||||||
|
|
||||||
4. Improve error handling
|
|
||||||
- Validate all user inputs
|
|
||||||
- Show meaningful error messages
|
|
||||||
- Add recovery options for data issues
|
|
||||||
|
|
||||||
## Medium Priority
|
|
||||||
5. Add player profiles
|
|
||||||
- Player avatars/images
|
|
||||||
- Personal statistics
|
|
||||||
- Preferred game types
|
|
||||||
- Nickname support
|
|
||||||
|
|
||||||
6. Implement game rules
|
|
||||||
- Show rules for each game type
|
|
||||||
- Add rule validation for scoring
|
|
||||||
- Display fouls and penalties
|
|
||||||
|
|
||||||
7. Add search and filtering
|
|
||||||
- Search for specific games/players
|
|
||||||
- Filter by date ranges
|
|
||||||
- Sort by various criteria
|
|
||||||
- Advanced filtering options
|
|
||||||
|
|
||||||
8. Improve game type management
|
|
||||||
- Custom game types
|
|
||||||
- Configurable scoring rules
|
|
||||||
- Special game modes
|
|
||||||
|
|
||||||
## Lower Priority
|
|
||||||
9. Add themes and customization
|
|
||||||
- Dark/light mode toggle
|
|
||||||
- Custom color schemes
|
|
||||||
- Font size adjustments
|
|
||||||
- Layout options
|
|
||||||
|
|
||||||
10. Implement data backup
|
|
||||||
- Export to different formats
|
|
||||||
- Automatic backups
|
|
||||||
- Data recovery options
|
|
||||||
|
|
||||||
11. Add social features
|
|
||||||
- Share game results
|
|
||||||
- Player rankings
|
|
||||||
- Tournament support
|
|
||||||
- Challenge system
|
|
||||||
|
|
||||||
12. Improve accessibility
|
|
||||||
- Screen reader support
|
|
||||||
- Keyboard navigation
|
|
||||||
- High contrast mode
|
|
||||||
- Voice input support
|
|
||||||
|
|
||||||
## Nice to Have
|
|
||||||
13. Add animations and effects
|
|
||||||
- Score change animations
|
|
||||||
- Victory celebrations
|
|
||||||
- Transition effects
|
|
||||||
- Sound effects
|
|
||||||
|
|
||||||
14. Implement achievements
|
|
||||||
- Player milestones
|
|
||||||
- Special records
|
|
||||||
- Achievement badges
|
|
||||||
- Progress tracking
|
|
||||||
|
|
||||||
15. Add multi-language support
|
|
||||||
- Language selection
|
|
||||||
- Localized content
|
|
||||||
- RTL support
|
|
||||||
- Custom translations
|
|
||||||
5
astro.config.mjs
Normal file
5
astro.config.mjs
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
// @ts-check
|
||||||
|
import { defineConfig } from 'astro/config';
|
||||||
|
|
||||||
|
// https://astro.build/config
|
||||||
|
export default defineConfig({});
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "BSC Score",
|
|
||||||
"short_name": "BSC Score",
|
|
||||||
"description": "Pool Scoring App für den Billard Sport Club",
|
|
||||||
"lang": "de",
|
|
||||||
"start_url": ".",
|
|
||||||
"display": "fullscreen",
|
|
||||||
"background_color": "#1a1a1a",
|
|
||||||
"theme_color": "#000000",
|
|
||||||
"icons": [
|
|
||||||
{
|
|
||||||
"src": "icon-192.png",
|
|
||||||
"sizes": "192x192",
|
|
||||||
"type": "image/png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "icon-512.png",
|
|
||||||
"sizes": "512x512",
|
|
||||||
"type": "image/png"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
4856
package-lock.json
generated
Normal file
4856
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
14
package.json
Normal file
14
package.json
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"name": "growing-galaxy",
|
||||||
|
"type": "module",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "astro dev",
|
||||||
|
"build": "astro build",
|
||||||
|
"preview": "astro preview",
|
||||||
|
"astro": "astro"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"astro": "^5.9.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 364 B After Width: | Height: | Size: 364 B |
|
Before Width: | Height: | Size: 601 B After Width: | Height: | Size: 601 B |
@@ -1,31 +0,0 @@
|
|||||||
const CACHE_NAME = 'bscscore-v1';
|
|
||||||
const URLS_TO_CACHE = [
|
|
||||||
'/',
|
|
||||||
'/index.html',
|
|
||||||
'/manifest.json',
|
|
||||||
'/favicon.ico',
|
|
||||||
'/icon-192.png',
|
|
||||||
'/icon-512.png'
|
|
||||||
];
|
|
||||||
|
|
||||||
self.addEventListener('install', event => {
|
|
||||||
event.waitUntil(
|
|
||||||
caches.open(CACHE_NAME).then(cache => cache.addAll(URLS_TO_CACHE))
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
self.addEventListener('activate', event => {
|
|
||||||
event.waitUntil(
|
|
||||||
caches.keys().then(keys =>
|
|
||||||
Promise.all(keys.filter(key => key !== CACHE_NAME).map(key => caches.delete(key)))
|
|
||||||
)
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
self.addEventListener('fetch', event => {
|
|
||||||
event.respondWith(
|
|
||||||
caches.match(event.request).then(response =>
|
|
||||||
response || fetch(event.request).catch(() => caches.match('/index.html'))
|
|
||||||
)
|
|
||||||
);
|
|
||||||
});
|
|
||||||
@@ -11,7 +11,6 @@
|
|||||||
<meta name="description" content="BSC Score - Pool Scoring App für den Billard Sport Club">
|
<meta name="description" content="BSC Score - Pool Scoring App für den Billard Sport Club">
|
||||||
<meta name="theme-color" content="#000000">
|
<meta name="theme-color" content="#000000">
|
||||||
<link rel="icon" type="image/x-icon" href="favicon.ico" />
|
<link rel="icon" type="image/x-icon" href="favicon.ico" />
|
||||||
<link rel="manifest" href="manifest.json" />
|
|
||||||
<link rel="apple-touch-icon" href="icon-192.png" />
|
<link rel="apple-touch-icon" href="icon-192.png" />
|
||||||
|
|
||||||
<title>Pool Scoring</title>
|
<title>Pool Scoring</title>
|
||||||
@@ -1271,7 +1270,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script is:inline>
|
||||||
// Screen management
|
// Screen management
|
||||||
const screens = {
|
const screens = {
|
||||||
'new-game-screen': document.getElementById('new-game-screen'),
|
'new-game-screen': document.getElementById('new-game-screen'),
|
||||||
@@ -1735,12 +1734,5 @@
|
|||||||
closeGameCompletionModal();
|
closeGameCompletionModal();
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<script>
|
|
||||||
if ('serviceWorker' in navigator) {
|
|
||||||
window.addEventListener('load', function() {
|
|
||||||
navigator.serviceWorker.register('service-worker.js');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
5
tsconfig.json
Normal file
5
tsconfig.json
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"extends": "astro/tsconfigs/strict",
|
||||||
|
"include": [".astro/types.d.ts", "**/*"],
|
||||||
|
"exclude": ["dist"]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user