Backend (Spring Boot 3.2 / Java 21 / PostgreSQL): - JWT auth with BCrypt password hashing - User profile + Mifflin-St Jeor BMR calculator - Food search + barcode via OpenFoodFacts API with local cache - Meal CRUD with user data isolation and ownership checks - AI photo analysis (OpenAI Vision) with confidence intervals - AI correction feedback loop for personalisation - Flyway DB migrations + RFC-7807 error responses Mobile (React Native / TypeScript): - Full navigation stack (Auth → Tabs → Home stack) - Design tokens (WCAG 2.2 AA colours, 8px grid, 48px touch targets) - 10 screens: Login, Register, Home, Search, Camera, AI Result, Edit Meal, Daily Details, History, Profile - Confidence-aware calorie display (kcal ± range) - Repeat last meal shortcut + macro tracking Docs: - docs/PLAN-AND-REQUIREMENTS.md - docs/traceability.csv (35 requirements, all Implemented)
5.4 KiB
Agent files use atomic sentences. One concept per sentence. Maximum 80 characters per line.
Agent Standards - Layer 1
Module: Agent Standards Component: Layer 1 (Atomic Markdown Agent) Load: When working on virsaitis-agent/ or .github/agents/ Version: 3.0.0 Updated: 2026-04-20
Machine Policy
[AGENT_FORMAT]
FORMAT=markdown
SENTENCE_STRUCTURE=atomic
ENCODING=utf8_no_bom
LINE_LENGTH=80_chars_max
[FILE_OPERATIONS]
GITHUB_FOLDER_WRITE=prohibited_except_skills
AUTOMATED_FORMATTERS=prohibited
CREATE_FILE_TOOL=allowed_outside_github
Atomic Sentence Construction (TIER-0)
Definition: One sentence expresses exactly ONE concept.
Characteristics:
- Single subject-verb-object relationship
- No compound clauses ("and", "but", "which" joining ideas)
- No nested dependencies or implicit references
- Standalone comprehensibility
WHY: AI models comprehend atomic sentences 30% more accurately than compound sentences.
Good vs Bad Examples
GOOD (Atomic):
You must validate file existence.
File validation prevents NotFoundError.
Run validation before modification.
Use read_file tool for validation.
BAD (Compound):
You must validate file existence before modification to
prevent NotFoundError, and this should be done using the
read_file tool which checks both path and permissions.
Four concepts in one sentence. Split into four atomic sentences.
Markdown Format Requirements
FILE FORMAT:
- Extension:
.mdor.agent.md - Encoding: UTF-8 without BOM
- Line endings: LF (not CRLF)
- No trailing whitespace
- Single newline at end of file
HEADINGS:
- H1: Document title only (one per file)
- H2: Major sections
- H3: Subsections
- Always space after hash:
## Title
LISTS:
- 2-space indent for nesting
- Ordered lists for sequential steps
- Unordered lists for non-sequential items
PROHIBITED:
- Tabs for indentation
- Multiple consecutive blank lines
- Automated formatters (Prettier, markdownlint)
- Spell checkers are OK (no structural changes)
.github Folder Governance (TIER-0)
The .github/ folder controls Virsaitis governance behavior.
Uncontrolled changes to agents, modules, or instructions undermine enforcement.
Changes outside .github/skills/ require the override workflow.
EXCEPTION: .github/skills/ — AI may create and update skill files.
CONSEQUENCE:
- Governance integrity cannot be guaranteed
- System must be re-validated manually
- Remediation: revert changes, validate all governance files
Agent File Workflows (TIER-0)
Creation
- Generate agent content in memory
- Validate atomic structure (one concept per sentence)
- For files outside
.github/: usecreate_filetool directly - For files inside
.github/: provide code block to user for manual creation - Verify file content after creation
Modification
- Read existing file content (entire file)
- Draft changes maintaining atomic structure
- Use
replace_string_in_filewith 3-5 lines context - Verify no sentences merged accidentally
IMPORTANT: Files in .github/ (except .github/skills/) require the override workflow.
Validation Checklist
EACH SENTENCE MUST:
- Express one concept only
- Have clear subject and verb
- Be understood without prior sentence
- Be under 80 characters (recommended)
- Contain no compound clauses
CONCEPT COUNTING: Read aloud. If you pause mid-sentence, split there.
COMMON FIXES:
- "and" joining concepts → split into two sentences
- "which"/"that" adding details → new sentence with explicit subject
- Implicit "it"/"this" → repeat the noun
Agent File Structure
REQUIRED SECTIONS (in order):
- Anchor line (governance rule, not title)
- Title + metadata
- Machine-readable policy block
- TIER-0 rules (safety-critical)
- TIER-1 rules (important operations)
- TIER-2/3 rules (quality/info)
- Workflow patterns
- Sandwich close (key rules summary)
ATTENTION ENGINEERING:
- Anchor line: highest-attention position (line 1)
- Sandwich close: recency zone (last 10 lines)
- Tripwires: every ~60 lines in middle sections
- Different wording from other sources (CT-3)
Change Management
MUST UPDATE agent files when:
- New TIER-0 rule added
- Existing rule modified
- Enforcement consequence changed
- New component integration
- Security policy updated
UPDATE PROCESS:
- Draft new content (atomic sentences)
- Validate atomic structure
- Update version number and date
- Add CHANGELOG entry
- Commit with REQ-ID reference
Quick Reference
| Aspect | Standard | Violation |
|---|---|---|
| Sentences | One concept only | Multiple concepts |
| File Creation | Tools outside .github, manual inside | Direct .github modification |
| Encoding | UTF-8 no BOM | UTF-8 with BOM |
| Line Length | <80 chars | >120 chars |
| Formatting | Manual only | Auto-formatter |
Agent Standards Module v3.0.0 Atomic sentence construction for maximum AI comprehension
Key Rules From This Module
- One concept per sentence. No compound sentences in agent files.
- Maximum 80 characters per line. Break at natural points.
- Files in
.github/(except skills/) require the override workflow. - Every agent file must have an anchor line, sandwich close, and tripwires.
- Definitions:
.github/virsaitis-definition-library.md
Return to hub: .github/copilot-instructions.md