2.4 KiB
2.4 KiB
name, description
| name | description |
|---|---|
| faerro-kb-development | Implement or review Faerro KB product changes while preserving local-first capture, user-controlled storage, privacy, and recoverable data behavior. |
Faerro KB Development
Use this skill for feature work, bug fixes, and reviews in this repository. The repository's .github/copilot-instructions.md is the source of truth for product goals and non-negotiable guardrails.
Before changing behavior
- Trace the owning path in
app/main.py,frontend/app.js,frontend/sw.js, or the relevant deployment file. Read the nearby tests and documentation when present. - Identify what happens to the original recording, raw transcript, browser queue, server acknowledgement, and retry behavior. Keep recovery possible across offline periods and failures.
- State the narrow behavior change and a focused check that could disprove it before editing.
Implementation requirements
- Keep audio processing and persistence on user-controlled infrastructure. Do not introduce hosted AI, speech, geocoding, analytics, or storage services.
- Keep original audio and raw transcription immutable when adding transcript edits or correction suggestions.
- Remove an upload from the browser queue only after the API confirms durable storage. Handle failed, interrupted, and retried requests without losing the local copy.
- Treat browser persistence and iOS background activity as best-effort. Make limitations visible in relevant user-facing documentation or UI.
- Keep transcription services private to the Docker network. Preserve the existing VPN/firewall deployment assumptions and explain the lack of authentication where relevant.
- Prefer focused changes consistent with FastAPI, SQLite/FTS5, and the vanilla JavaScript PWA. Avoid unrelated refactors and new dependencies.
Verification and handoff
- Add or update focused tests for changed behavior, especially queue acknowledgement, retries, and data-preserving transcript workflows.
- Run the narrowest relevant test, compile, or lint check available, then document any important limitation or unverified check.
- If tooling required for a relevant test or check is missing, tell the user which tool is needed and prompt them to install it locally instead of silently skipping the check.
- Update
README.mdwhen setup, deployment, backups, privacy, or platform behavior changes. - Never claim that iOS guarantees background execution or that browser storage is permanent.