Skip to content

Latest commit

 

History

History
86 lines (55 loc) · 3.81 KB

CLAUDE.md

File metadata and controls

86 lines (55 loc) · 3.81 KB

CLAUDE.md — Dictus Android

Projet

Dictus Android — Application native Android de dictation vocale offline. Port de l'application iOS existante (voir repo dictus). Voir PRD.md pour les specs completes.

Stack

  • Kotlin + Jetpack Compose
  • WhisperKit / Whisper.cpp pour STT offline
  • Material Design 3 / Material You
  • Minimum SDK: 29 (Android 10)

Design Reference

Les maquettes sont dans design/dictus-android-design.pen. Utiliser les outils MCP Pencil (batch_get, get_screenshot) pour consulter les ecrans. Voir design/README.md pour la liste des frames et IDs.

Frames principales

  • Home: wrqi0 | Models: kSWvw | Settings: CqKvx
  • Recording: 0yEaN | Waveform Spec: VUDbq

Architecture cible

  • app/ — Application principale (onboarding, settings, model manager, recording)
  • core/ — Module partage (modeles, preferences, design system)

Conventions

  • Nommage: camelCase pour variables/fonctions, PascalCase pour classes/composables
  • Un fichier = une responsabilite
  • Commentaires en anglais dans le code
  • UI strings: francais (langue principale) + anglais

Couleurs principales

  • Background: #0A1628
  • Surface: #161C2C
  • Accent: #3D7EFF
  • Accent highlight: #6BA3FF
  • Recording: #EF4444
  • Success: #22C55E

Contexte utilisateur

  • Pierre est debutant en Kotlin/Android — expliquer les concepts cles
  • Toujours expliquer le "pourquoi" derriere les choix d'architecture Android
  • L'app iOS (repo dictus) sert de reference fonctionnelle

Agent skills

Issue tracker

Issues live in GitHub Issues on getdictus/dictus-android, managed with the gh CLI. See docs/agents/issue-tracker.md.

Triage labels

Default vocabulary: needs-triage, needs-info, ready-for-agent, ready-for-human, wontfix. See docs/agents/triage-labels.md.

Physical test label

needs-physical-test marks PRs touching audio/mic/transcription: test on a physical device with Pierre before merge. Auto-applied from .github/labeler.yml; only Titus removes it, after Pierre validates. See docs/agents/physical-test-label.md.

Domain docs

Single-context: one GLOSSARY.md and docs/adr/ at the repo root. See docs/agents/domain.md.

Verification and test tiers

Use the verify-dictus-android skill (.claude/skills/verify-dictus-android/) for any change with a user-visible effect, before opening the PR, and whenever a change has to be proven on Pierre's Pixel 4.

A PR that adds or changes a screen or a user-facing feature MUST update the skill's features/ and features/screens.md in the same PR, with the same IDs as the iOS map (getdictus/dictus-ios, .claude/skills/verify-dictus-ios/features/).

Four test tiers, detailed in the skill's SKILL.md → Test tiers:

  1. Emulator: the default for every PR. The opt-in x86_64 debug build (-Pdictus.emulatorAbi=true, #147) and the virtual microphone fed from French WAV clips (#149) are in place, so a dictation can be proven on the emulator with Tiny.
  2. Pixel 4 driven by Andy: real microphone, permissions, transcription time with Tiny, Base, Small Q5 (the onboarding model below 6 GB of RAM) and Parakeet 0.6B v3 (the onboarding model from 6 GB, so on the 6 GB Pixel 4, #152).
  3. Pixel 4 with Pierre: real voice, text quality, keyboard feel. Label needs-physical-test and a batch device test.
  4. Out of reach: Whisper models larger than Small Q5 (small, medium-q5_0). The PR says "not tested on a recent phone".

pstack

pstack (https://github.com/cursor/plugins/tree/main/pstack) is the reference toolbox for agent workflows. It provides create-verification-skill and maintain-verification-skill (both user-invoked only), unslop for prose, tdd, poteto-mode and a set of engineering principle skills. It is enabled for this repo through .claude/settings.json; Claude Code asks you to trust the cursor-plugins marketplace on first use.