Imported from tani/tools (
AGENTS.md). Install upstream withnpx skills add tani/tools. Copyright stays with the author.
GEMINI Context: Taniguchi's Tools
Project Overview
This project, "Taniguchi's Tools," is a comprehensive, web-based suite of developer and utility tools. It is built as a Single Page Application (SPA) providing a variety of functionalities ranging from text manipulation and mathematical conversions to graphics processing.
Main Technologies
- Framework: Vue 3 (Composition API with
<script setup>) - Language: TypeScript
- Build Tool: Bun (
bun build) with@eckidevs/bun-plugin-vue - Styling: Bootstrap 5 with Bootswatch "Lumen" theme
- Routing: Vue Router
- Linting/Formatting: Biome
Architecture
src/tools.ts: [CRITICAL] The single source of truth for tool definitions. Contains path, component import, metadata, and category for every tool.src/views/: Contains the individual tool components (e.g.,pattern.vue,regex.vue). New tools must be registered insrc/tools.ts.src/worker/: Houses shared logic and pure functions with Web Worker support.scripts/: Build pipeline scripts (Bun build, PWA, Prism assets, Tesseract assets).
Building and Running
Build
bun run build
Compiles the application for production into the dist/ directory (HTML entry point).
Code Quality
- Check Everything:
bun run check(Runs TypeScript check + Vue check + Biome check) - Fix Formatting:
bun run check!(Runs checks + Biome formatting/fixing)
Development Conventions
adding a New Tool
- Create Component: Create your tool component in
src/views/. - Register: Add the tool entry to the
toolsarray insrc/tools.ts.- Note: Do NOT manually modify
src/router.ts,src/App.vue, orsrc/views/home.vueto add links. These are automatically generated fromsrc/tools.ts.
- Note: Do NOT manually modify
UI/UX Design Pattern (The "Window-Bar" Style)
All tools must adhere to the established consistent design language:
- Header: Every tool starts with
ToolHeadercomponent. - Configuration: Settings/Inputs are placed in a
ToolCard(or simple card) with a headerfw-bold small text-uppercase text-muted. - Split Layout: Main workspaces should use a 2-column grid (
col-lg-6) on large screens. - Cards: All textareas and preview areas are wrapped in cards.
- Typography: Monospaced fonts (
font-monospace) are used for all code, data, and technical text areas. - Read-Only Areas: Output areas use the
bg-lightbackground class.
Coding Practices
- Language: The user interface and all documentation/comments must be in English.
- Reactivity: Leverage Vue's
computedproperties for real-time data processing to ensure a responsive "instant-feedback" feel. - Safety: You MUST run
bun run checkandbun run buildbefore finishing any task to ensure code quality and prevent regressions.