FieldCert — where we are going

The goal you set, the team's plan under it, and the queue a nightly run works through from the top. Technical detail is behind a click.

The team changed the plan 5x since you last looked. Nothing is waiting on you — this is so you can disagree:
show the changes
  • added under m6-mvp-polish — The active milestone's outcome is 'every screen in the inspection to certificate loop is finished and honest', but the certificate — the product's actual deliverable — silently truncates findings at ten, drops all photo evidence, prints 'Not recorded' for tamper evidence while the archive advertises (2026-11-06, by agent)
  • added under m6-mvp-polish — The owner's standing directive (2026-11-05) is 100% unit and UI coverage, and the pipeline enforces it by code, but the goal tree had no branch for it, so every coverage head read as off-goal work. The same cycle exposed that the measurement itself under-reported container files (team 334c845); givi (2026-11-07, by agent)
  • add — the plan had no middle tier: milestones sat directly under the vision, so a feature stood where a goal should and no goal number could gate the next one. Code inserted the three ends (experience → retention → revenue) and filed each milestone under the goal its title names; the planner may move any (2026-11-07, by agent)
  • updated — Every measure is proven by the shipped code: app/src/main/java/agrawal/bhanu/fieldcert/pdf/PdfReportGenerator.kt paginates with buildPages/newPage (no truncation), collectEvidence pairs each finding's photos and reports missing files, formatTamperEvidence prints a computed SHA-256 digest, and the LE (2026-11-07, by agent)
  • updated — The certificate milestone is met, so the MVP-polish milestone becomes the active work. Its outcome already says every screen must be finished, but no measure could be FAILED by a visual defect, so a screen could carry five P0 blunders and still read as done. The added measure turns the look-and-feel (2026-11-07, by agent)

The goal yours — nobody else changes it

FieldCert - Safety Inspection is a local-first safety and compliance inspection app for trade professionals.

The plan 8 goals, 2 in progress

Multi-Trade Specialized Checklists & Dynamic Logic Done
Inspectors can execute standardized electrical, plumbing, and fire safety checklists with reactive math formulas and conditional branching that automatically unhides defect checks.
3 of 3 built — all of them
how we will know it is done
  • Electrical NEC 2026 panel checklists and load calculation formulas available offline
  • Plumbing backflow preventer and water pressure test forms available offline
  • Fire damper, sprinkler, and emergency lighting life-safety checks available offline
  • Dynamic conditional branching: failing a reading triggers mandatory visual confirmation sub-checks
technical detail
  • id: m2-multi-trade
  • set by: you
  • status: done
Glove-Friendly Tactical UX & Voice Dictation Done
Technicians wearing thick gloves in harsh basements and bright roofs can dictate defect notes hands-free and operate high-contrast controls without friction.
2 of 2 built — all of them
how we will know it is done
  • On-device speech-to-text dictation captures inspection notes with zero cloud latency
  • High-contrast direct-sunlight mode toggle for bright rooftop visibility
  • Rapid-fire photo burst mode for capturing 20+ equipment photos sequentially
technical detail
  • id: m3-tactical-ux
  • set by: you
  • status: done
Zero-Cloud Peer-to-Peer Desktop & Tablet Sync
Technicians can sync inspection records and full-resolution photo packages directly to the shop workstation over local Wi-Fi without server infrastructure.
how we will know it is done
  • Zero-configuration mDNS discovery of desktop receiver on local Wi-Fi
  • Embedded local Ktor HTTP sync transfers 50+ photos and job records in under 30 seconds
  • Dual-pane desktop review workspace for batch PDF archiving
technical detail
  • id: m4-local-sync
  • set by: you
  • status: parked
Custom Contractor Branding & Perpetual Licensing
Trade contractors can customize compliance certificates with company logos, license numbers, and unlock lifetime offline usage for $99.
how we will know it is done
  • Custom company branding (logo, license #, custom disclaimer text) embeds into generated PDFs
  • $99 perpetual license key validation engine (100% offline cryptographic key check)
  • Multiple certificate layout themes (Standard, Municipal Submittal, Contractor Warranty)
technical detail
  • id: m5-perpetual-licensing
  • set by: you
  • status: parked
Complete Inspection & Generate Official PDF Offline Done
A technician can finish an on-site inspection and share an official signed PDF certificate in under 2 minutes completely offline.
1 of 1 built — all of them
how we will know it is done
  • Offline inspection job creation, execution, and PDF export completes end-to-end without network access
technical detail
  • id: m1-core-loop
  • set by: you
  • status: done
MVP Polish: Every Shipped Flow Finished In progress
Every screen a technician touches in the inspection to certificate loop is finished and honest: nothing claims evidence the app did not compute, records can be managed, and empty or failed states say what happened.
9 of 12 built
how we will know it is done
  • No screen claims a verification, credential or license the app does not actually implement
  • An inspection can be archived and deleted from the dashboard with a confirmation and an undo
  • Empty and error states are honest: zero audits shows no pass rate, and a failed PDF export surfaces a retry instead of a spinner
  • No audited screen carries a P0 blunder: no overlapping, clipped or wrapped control in the app's own renders or recorded flows (signals.ux.p0_blunder_count == 0)
technical detail
  • id: m6-mvp-polish
  • set by: the team
  • status: active
Certificate Completeness & Attribution Done
The official PDF a technician hands a client contains every finding and the evidence behind it, is attributed to a named licensed inspector, and its tamper stamp is a digest the app actually computed.
2 of 2 built — all of them
how we will know it is done
  • Every recorded finding appears in the exported certificate across paginated pages — no silent truncation
  • Photo evidence captured against a finding is embedded in the certificate with its caption
  • The certificate's tamper stamp is a SHA-256 digest computed from the recorded audit, or the claim is removed
  • The inspector's name and certification id are recorded once and printed on every certificate
technical detail
  • id: m6-certificate-completeness
  • set by: the team
  • status: done
Proof Suite: every shipped formula and design token is named by a test In progress
Every behaviour file and every UI file in the shipped tree is reached by a test that can fail, so the 100% coverage floors are met by real assertions rather than by the measurement, and a reading the app cannot trust is never certified compliant.
1 of 1 built — all of them
how we will know it is done
  • unit coverage of main-source files reaches 100%, and a file counts only when a test actually reaches it
  • ui coverage reaches 100%: the sunlight type scale, the palette and every screen composable are asserted by a test
  • no shipped flow ships without a test that can fail — the diff-scoped test gate stays green on every release
technical detail
  • id: m6-proof-suite
  • set by: the team
  • status: active

The queue 4 waiting — one is built per night, top first

1
Five real rivals are cited in the competition research so store-readiness stops blocking on it next
not tied to a goal yet (none is set)
why the team picked this
  • The only store-readiness blocker (29 of 30 checks pass) is our own market-recon gate: 1 unique Play package cited against a minimum of 5, and no recon report be
technical detail
  • type: feature
  • serves: none
  • goal id: none
  • target: docs/COMPETITION_RESEARCH.md
2
Changing screen stops being a hard cut: the dialog, the list and the detail screen actually animate
for: MVP Polish
why the team picked this
  • Serves m6-mvp-polish's outcome that every screen a technician touches feels finished: both recorded flows (start-audit, inspect-checklist) verdict the app funct
technical detail
  • type: feature
  • serves: MVP Polish: Every Shipped Flow Finished
  • goal id: m6-mvp-polish
  • target: app/src/main/java/agrawal/bhanu/fieldcert/MainActivity.kt, app/src/main/java/agrawal/bhanu/fieldcert/ui/dashboard/DashboardScreen.kt, app/src/main/java/agrawal/bhanu/fieldcert/ui/inspection/InspectionDetailScreen.kt, app/src/androidTest/java/agrawal/bhanu/fieldcert/AppNavigationTest.kt, app/src/androidTest/java/agrawal/bhanu/fieldcert/DashboardScreenTest.kt
3
A reading the app cannot trust is a rejected entry, not a life-safety defect, and the design doc names the fonts that actually ship
for: MVP Polish
why the team picked this
  • Serves m6-mvp-polish's measures that empty and error states are honest and that no screen claims evidence the app did not compute: an invalid reading (negative,
technical detail
  • type: bugfix
  • serves: MVP Polish: Every Shipped Flow Finished
  • goal id: m6-mvp-polish
  • target: app/src/main/java/agrawal/bhanu/fieldcert/ui/inspection/InspectionDetailViewModel.kt, app/src/main/java/agrawal/bhanu/fieldcert/calc/TradeMathCalculators.kt, app/src/test/java/agrawal/bhanu/fieldcert/InspectionDetailViewModelTest.kt, app/src/test/java/agrawal/bhanu/fieldcert/TradeMathCalculatorsTest.kt, docs/design.md
4
FieldCert stops using the deprecated edge-to-edge APIs Play flagged, so the next Android release cannot be rejected
for: MVP Polish
why the team picked this
  • Play Console flags 1 action needed on release 1.0.20: 'Your app uses deprecated APIs or parameters for edge-to-edge' (fix by Feb 2027) - the same chrome family
technical detail
  • type: bugfix
  • serves: MVP Polish: Every Shipped Flow Finished
  • goal id: m6-mvp-polish
  • target: app/src/main/java/agrawal/bhanu/fieldcert/MainActivity.kt, app/src/main/res/values/themes.xml, app/src/main/java/agrawal/bhanu/fieldcert/ui/theme/Theme.kt

Already done 19 shipped

The inspector's own name and certification are recorded once and printed on every certificate v1.0.18
2026-11-07
technical detail
  • serves: Certificate Completeness & Attribution
  • task: dt-the-inspector-s-own-name-and-c-018
  • target: app/src/main/java/agrawal/bhanu/fieldcert/ui/dashboard/DashboardScreen.kt
The sunlight type scale is held by a test that can fail, and the trade math refuses a reading it cannot trust v1.0.19
2026-11-07
technical detail
  • serves: Proof Suite: every shipped formula and design token is named by a test
  • task: dt-the-sunlight-type-scale-is-hel-019
  • target: app/src/test/java/agrawal/bhanu/fieldcert/TradeMathCalculatorsTest.kt
Test testing sign functionality fieldcert 2026 11 07 v1.0.21
2026-11-07
technical detail
  • serves: MVP Polish: Every Shipped Flow Finished
  • task: Test testing sign functionality fieldcert 2026 11 07
  • target: app/src/main/java/**, app/src/main/res/**, distribution/whatsnew/**, docs/**, app/src/test/**, app/src/androidTest/**
  • why: Owner request: "do the ui testing of the sign functionality of the fieldcert app" — names the known surface 'inspection detail'
FieldCert stops drawing under the system bar and stops clipping its own chrome: six P0 blunders closed v1.0.20
2026-11-07
technical detail
  • serves: MVP Polish: Every Shipped Flow Finished
  • task: dt-fieldcert-stops-drawing-under-020
  • target: app/src/main/java/agrawal/bhanu/fieldcert/MainActivity.kt
The certificate carries every finding and its photo evidence, and its tamper stamp is a digest the app actually computed v1.0.17
2026-11-06
technical detail
  • serves: Certificate Completeness & Attribution
  • task: dt-the-certificate-carries-every-017
  • target: app/src/main/java/agrawal/bhanu/fieldcert/pdf/PdfReportGenerator.kt
A failed certificate export says so and can be retried, a fresh install shows no pass rate, and a certificate row only claims a hash its export produced v1.0.16
2026-11-06
technical detail
  • serves: MVP Polish: Every Shipped Flow Finished
  • task: dt-a-failed-certificate-export-sa-016
  • target: app/src/main/java/agrawal/bhanu/fieldcert/ui/inspection/InspectionDetailViewModel.kt
Storefront previews: bind Play scenes to the app's real screen composables v1.0.9
2026-11-05
technical detail
  • serves: Complete Inspection & Generate Official PDF Offline
  • task: dt-storefront-previews-bind-play-009
  • target: app/src/main/java/agrawal/bhanu/fieldcert/ui/
Every stamp is computed, not claimed: real SHA-256 and capture time, no invented credential, GPS or licence panel v1.0.13
2026-11-05
technical detail
  • serves: MVP Polish: Every Shipped Flow Finished
  • task: dt-every-stamp-is-computed-not-cl-013
  • target: app/src/main/java/agrawal/bhanu/fieldcert/ui/markup/PhotoMarkupScreen.kt
Manage the audits you create: archive, restore and delete with a confirmation and an undo v1.0.14
2026-11-05
technical detail
  • serves: MVP Polish: Every Shipped Flow Finished
  • task: dt-manage-the-audits-you-create-a-014
  • target: app/src/main/java/agrawal/bhanu/fieldcert/ui/dashboard/DashboardScreen.kt
Visual complete the testing and 2026 11 05 v1.0.15
2026-11-05
technical detail
  • serves: MVP Polish: Every Shipped Flow Finished
  • task: dt-visual-complete-the-testing-an-015
  • target: app/src/main/java/**
Give the store a fresh, honest What's new line for the production build v1.0.12
2026-11-05 — done before this plan existed
technical detail
  • serves: none
  • task: dt-give-the-store-a-fresh-honest-012
  • target: distribution/whatsnew/whatsnew-en-US
Icon refresh 2026 11 04 v1.0.11
2026-11-04 — done before this plan existed
technical detail
  • serves: none
  • task: dt-icon-refresh-2026-11-04-010
  • target: distribution/listing/en-US/images/icon.png
Add conditional defect escalation sub-checks when a trade reading fails v1.0.6
2026-11-03
technical detail
  • serves: Multi-Trade Specialized Checklists & Dynamic Logic
  • task: dt-add-conditional-defect-escalat-005
  • target: app/src/main/java/agrawal/bhanu/fieldcert/
Add emergency lighting 90-minute discharge test with NFPA 101 foot-candle math v1.0.7
2026-11-03
technical detail
  • serves: Multi-Trade Specialized Checklists & Dynamic Logic
  • task: dt-add-emergency-lighting-90-minu-006
  • target: app/src/main/java/agrawal/bhanu/fieldcert/
Fix emergency-lighting badge and duplicated checkpoint numbers on the seeded fire template v1.0.8
2026-11-03
technical detail
  • serves: Multi-Trade Specialized Checklists & Dynamic Logic
  • task: dt-fix-emergency-lighting-badge-a-007
  • target: app/src/main/java/agrawal/bhanu/fieldcert/
Add rapid photo burst mode for sequential equipment documentation v1.0.5
2026-11-03
technical detail
  • serves: Glove-Friendly Tactical UX & Voice Dictation
  • task: dt-add-rapid-photo-burst-mode-for-004
  • target: app/src/main/java/agrawal/bhanu/fieldcert/ui/
Show the installed build version in Settings so a tester can confirm which build they are on v1.0.9-rc.1
2026-11-03
technical detail
  • serves: Glove-Friendly Tactical UX & Voice Dictation
  • task: dt-show-the-installed-build-versi-008
  • target: app/src/main/java/agrawal/bhanu/fieldcert/ui/
Add high-contrast direct-sunlight mode toggle for bright rooftop visibility v1.0.4
2026-11-03 — done before this plan existed
technical detail
  • serves: Earlier work — from before we wrote this plan down
  • task: dt-add-high-contrast-direct-sunli-003
  • target: ui
Add on-device speech-to-text dictation for hands-free defect logging v1.0.3
2026-11-01 — done before this plan existed
technical detail
  • serves: Earlier work — from before we wrote this plan down
  • task: dt-add-on-device-speech-to-text-d-002
  • target: app/src/main/java/agrawal/bhanu/fieldcert/

Rebuilt automatically every run from the team's own records in this project. Disagree with anything? Tell the team — it changes, and you are told — or run devteam goal <project> revert. Everything on this page, including the technical detail behind each item, is generated by code: no LLM writes it and nothing here is tuned for looks.