FlashMaster is a dense memory-chip lookup workstation built with Vite, Vue 3, Vuetify, Vue Router, and Vue I18n. Keep the first screen directly usable for PN and NAND Flash ID decoding/search; do not add a marketing landing page.
- Carry an implementation request through the local change, relevant checks, and fixes for failures it causes. Routine reversible work within that scope does not need another approval. Ask only when missing information materially changes the result or an action needs authorization not already given.
- An audit-only or proposal-only request stays read-only. Preserve unrelated work in the checkout; do not reset it to simplify the task.
commitmeans a scoped local commit.commit allincludes the worktree after reviewing its contents for unintended files and secrets. Neither implies push, deployment, or release; follow explicit authorization already given.- Read the source and documentation relevant to the change. The links below are task-specific references, not a required reading sequence.
- Explicit user instructions override workflow defaults in this guide and project skills. If a rule blocks the requested work, cite its file and wording and explain the specific decision needed; do not invent an approval gate.
- Use
pnpm;package.jsondefines the package-manager version and scripts. Development starts withpnpm dev; preview usespnpm preview. - When updating dependencies, prefer the latest compatible versions and keep
package.jsonandpnpm-lock.yamltogether. Do not upgrade unrelated dependencies as part of another task. Document an older major only when a known compatibility constraint requires it. - Register only used Vuetify components/directives manually in
src/main.js. Do not use wildcard registrations or addvite-plugin-vuetifyunless asked. Keep the current Vite/Vue stack; do not reintroduce Vue CLI, webpack, Yarn, or Vue 2.
- UI queries go through
src/services/flashApi.js. Preserve embedded fdnext and the configured HTTP backend, including decode, search, info, and summary behavior. Pico builds remain HTTP-only. vendor/fdnextis an upstream Git submodule. Do not edit it without an explicit upstream patch request, copy its source/resources into the app, or replace it with../fdnext. Preserve the@itxtech/fdnext-coreand@itxtech/fdnext-decodepackaliases unless upstream changes its layout.- Preserve public routes in hash/history modes and
/en//zhURL prefixes. Keep settings persistence compatible throughsrc/store/index.js. - Preserve the compact navigation, title/language area, settings, result
panels, paged tables, and copy actions. Theme choices are dark, light, and
system in Settings. Footer:
© 2019-2026 iTX Technologies. - Market Pulse stays optional, quiet, and easy to disable. Keep visible-slot rendering, CSS-driven scrolling, and suspension while the document is hidden.
- Query analytics involve user input. Any expansion must be transparent, offer a Settings control, and prefer aggregated or normalized data. Do not silently introduce an external analytics provider or endpoint.
- Documentation/instruction-only changes need diff, link, and factual checks; validate skill metadata when changed. They do not require app builds or UI smoke tests unless they also change runtime behavior.
- For application code, dependencies, build configuration, or an fdnext pointer
update, run
pnpm lintandpnpm build, plus affected existing tests where applicable. Add regression tests for meaningful behavior, not wording or trivial changes that only mirror the implementation. - UI changes also need a browser check of the affected flow and relevant viewport/settings states. Use the verification matrix to select tests and build variants; a small UI edit does not require every unrelated feature to be exercised.
- Once relevant checks pass, repeat or broaden them only for new changes, failures, or unresolved risks. Respect an explicit request to skip tests and report what was not verified. An unavailable HTTP server is a verification gap; mocked requests or a successful build do not prove live compatibility.
- Do not commit generated
distordist-singlefileoutput unless requested.
- Keep
README.mdandREADME-zh.mdcontent synchronized as concise overviews. Detailed docs belong indocs/, in Chinese unless English is requested. - Add user-visible release changes at the top of both
CHANGELOG.txtandCHANGELOG-zh.txt; preserve older entries. Agent-guidance-only edits do not need an application version bump or product changelog entry. - The base app version lives in
package.json;vite.config.jsderives app and fdnext version/hash displays. Do not hand-edit injected version constants. Changelog seen-state uses the base version without build metadata.
- Updating the bundled parser: use flashmaster-fdnext-update. Ordinary UI/parser-adapter work does not itself call for a submodule refresh.
- Changing routes, parser contracts, UI/state, or Market Pulse: read the relevant section of development contracts.
- Changing single-file, PWA, hosting, or release behavior: use
deployment guidance and the current
vite.config.jsor.github/workflows/release.ymlfor the affected mode.
Report the result concisely in the user's language: what changed, what was actually verified, and any remaining limitation or required decision.