
Coding assistants make it easy to add another button, card, or form field. Three different situations can look the same in a pull request: an accidental copy, an intentional variant, and two components that share a shape but do different jobs. Similarity alone cannot tell those apart. A frontend tech lead or design-system maintainer still has to inspect the code, decide what to keep, and turn that decision into cleanup work. DupeDetective is a web app for that review. The reviewer starts a scan from a public GitHub repository URL or a ZIP upload. For GitHub, they can pin a branch or commit; the scan records the resolved commit SHA. A ZIP is identified by a content hash. Each scan is its own session. A new scan starts with no decisions from an earlier one, and the site never writes back to the scanned repository. Analysis is deterministic. A Babel parser finds React function, arrow, and class components in JavaScript and TypeScript. Pairs are scored with fixed weights: JSX element tree (35), prop-name overlap (25), event-handler overlap (15), nesting depth (10), shared class names (10), and component name (5). A token that appears everywhere counts for less than a rare one. Components join a group while the average stays at 28 or above. A group score is the average of every pair in the group. Forty or higher reads as Strong. Scores only order the queue. They are not a duplicate verdict. The reviewer compares members side by side: source paths, prop signatures, the matched signals in plain language, and a best-effort preview. The preview runs in a sandboxed iframe with editable mock props generated from declared types. If a preview fails, the group stays reviewable from the source. For each group they choose one component to keep, which members merge into it, and which stay separate. A merge requires a note. Keep separate does not create cleanup work. The site then writes a Markdown backlog and a copyable repair instruction for that scan. The instruction names the component to keep, the components to replace, the components to leave unchanged, the behavior to preserve, and suggested checks. The reviewer pastes it into IBM Bob, or any other coding agent, and marks the migration complete only after they confirm the work. What makes this different is the split of labor. Detection stays repeatable and explainable, so a person can disagree with a match. The coding agent enters only after that decision, with a bounded task instead of a vague request to clean up duplicates. The target user is a senior frontend engineer reviewing a React codebase that grew faster than its design system.
27 Sep 2026

AI Issue Router is a smart project management and issue assignment demo built to improve how software teams handle urgent problems. In many development teams, when crashes, bugs, or production issues happen, someone still has to manually decide who should fix them. This process can be slow, stressful, and inefficient during critical moments. Our solution uses AI to automatically analyze incoming issues and assign them to the most suitable engineer based on skills, role, workload, and project context. This helps teams reduce repetitive coordination work and respond to incidents faster. The project was developed by a team of four software engineers during a hackathon. We spent one day brainstorming the idea and planning the workflow, followed by one full day of development and implementation. Throughout the development process, we used IBM’s BOB IDE as our primary AI-assisted development environment to accelerate coding, debugging, and iteration. The platform includes project management, shared team member management, AI-powered issue routing, workload tracking, issue simulation, and timeline visualization. We also implemented a fallback assignment system to ensure issues can still be assigned even if the AI service is unavailable. AI Issue Router demonstrates how AI can improve software development workflows by helping engineering teams work faster, smarter, and with less operational overhead.
17 May 2026