Commit Graph
153 Commits
Author SHA1 Message Date
tiennm99 578317a14a chore: add Apache-2.0 license 2026-04-29 21:33:42 +07:00
tiennm99 540e82834d chore: add Apache-2.0 license 2026-04-29 21:33:40 +07:00
tiennm99 74449540b9 chore: add Apache-2.0 license 2026-04-29 21:33:38 +07:00
tiennm99 b6fd1709e8 feat(web): add index.html redirect to pikachu-connect for GitHub Pages 2026-03-11 20:53:21 +07:00
tiennm99 b27467ef3d feat(outputs): add Pikachu Connect HTML page 2026-03-11 00:07:51 +07:00
tiennm99 192971870e feat(outputs): add daily digest for 2026-03-10 2026-03-10 21:15:08 +07:00
tiennm99 c9baf46d61 feat(skills): add email-curator and hugo-post-writer skills 2026-03-10 21:12:16 +07:00
tiennm99 b4572c48fe feat(outputs): add expense report and receipts for Nov 2025 - Jan 2026 2026-03-10 20:52:19 +07:00
tiennm99 fada2aac6c feat(docs): add VNExpress war news summary document 2026-03-10 20:31:18 +07:00
tiennm99 49dc6d80df feat(skills): add document-creator skill 2026-03-10 20:09:08 +07:00
Tien Nguyen MinhandGitHub ca1dad26cc Merge pull request #1 from tiennm99/feat/add-expense-tracker-and-strategy-presentation
feat(docs): add expense tracker and strategy presentation files
2026-03-10 20:02:04 +07:00
tiennm99 d1e237b515 feat(docs): add expense tracker and strategy presentation files 2026-03-10 19:59:53 +07:00
tiennm99 487a68b445 feat(skills): add research-synthesizer skill for multi-document analysis and synthesis
Defines triggers, input requirements, sub-agent usage patterns, and
output formats for synthesizing insights across multiple documents.
Covers standard research synthesis, vendor comparisons, multi-perspective
analyses, and web + local source combinations. Includes example prompts.
2026-03-09 22:27:01 +07:00
tiennm99 01f8628685 feat(outputs): add multi-perspective analysis report for three key business decisions
Analyzes second location expansion, technology stack investment, and
espresso machine upgrade from Financial, Customer Experience, and
Operational Risk perspectives. Each decision synthesized into a concrete
recommendation with conditions and phased implementation plans.
2026-03-09 22:26:19 +07:00
tiennm99 1d8e7258c5 feat(outputs): add espresso machine vendor comparison report for La Marzocco, Victoria Arduino, and Synesso
Side-by-side comparison across pricing, lead time, service network,
reliability, resale value, and brand prestige. Includes individual
verdicts and key insight that capability differences between machines
are often overstated — decision hinges on service access, lead time,
and resale value.
2026-03-09 22:09:10 +07:00
tiennm99 9c482012c8 feat(outputs): add specialty coffee industry research report synthesized from 57 documents
Comprehensive analysis of the 2025-2026 specialty coffee market covering
6+ themes: independent shop advantages, technology as hygiene factor,
labor cost reset, sustainability imperatives, remote work geography shift,
and competitive strategy. Includes contradictions matrix, actionable
recommendations, and open strategic questions.
2026-03-09 22:00:05 +07:00
tiennm99 81c21d7998 feat(outputs): add customer feedback synthesis report for Basecamp Rewards program
Synthesizes 20 documents (surveys, emails, interviews, support tickets)
into a structured analysis covering 6 key themes: app reliability,
expiration policy, staff consistency, redemption options, VIP tier demand,
and value perception. Includes contradictions matrix, customer segment
patterns, feature requests, and prioritized recommendations.
2026-03-09 21:45:33 +07:00
tiennm99 6612d7c149 feat(workflow): process inbox files and move to categorized processed folders
Runs file-processor skill on 5 inbox files: moves and renames to
processed/receipts, processed/invoices, processed/documents, and
processed/images using ISO date naming convention. Generates
outputs/processing-log-2026-03-09.md. Inbox is now empty.
2026-03-09 21:27:40 +07:00
tiennm99 72ee54db66 feat(inbox): add sample inbox files for file processing workflow demo
Adds 5 realistic test files: Amazon receipt, freelance contract draft,
web design invoice, product sync meeting notes, and an app bug screenshot.
These serve as demo input for the file-processor skill.
2026-03-09 21:23:33 +07:00
tiennm99 0424a4949c feat(workflow): add file processing system with inbox/processed/outputs/reference folder structure
Introduces a repeatable file management workflow: inbox for new files,
processed for organized output, outputs for Claude-generated reports,
and reference for read-only context. Includes a file-processor skill
with naming conventions and categorization rules. Updates README with
usage instructions.
2026-03-09 21:21:13 +07:00
tiennm99 2b5b1b74c1 feat(scenarios): add file-chaos scenario with 56-file organization into 9 business categories
Organizes 56 chaotically named files into 9 typed folders (Invoices, Receipts,
Contracts-Legal, HR, Operations, Financial, Marketing, Screenshots, Compliance).
Files renamed with ISO dates and descriptive names. Flags 2 exact duplicates
and 3 urgent action items. Includes detailed ORGANIZATION-LOG.md.
2026-03-09 21:15:08 +07:00
tiennm99 a7bb6131f0 feat(scenarios): add done-framework scenario with DONE-status file organization
Organizes 19 files into 7 topic folders using DONE/In Progress status labels
(Analytics, Budget, Marketing, Meetings, Menu & Recipes, Operations, Training).
Files renamed with ISO dates and descriptive names. Includes organization-summary.md.
2026-03-09 20:56:28 +07:00
tiennm99 b12526ac03 refactor(scenarios/first-task): reorganize files into 5 business-function subfolders with descriptive names
Replaces 4 lowercase technical folders with 5 human-readable business-function
folders (Finance & Invoicing, Contracts & Compliance, Internal Notes & Meetings,
Marketing & Social, Planning & To-Dos). Files renamed with full context (date,
entity, type). Updates CHANGES.md accordingly.
2026-03-09 20:46:42 +07:00
tiennm99 299fba04c6 feat(scenarios): add first-task scenario with organized file structure
Organizes 10 files from root into 4 subfolders (finance, operations,
marketing, planning) with descriptive names. Includes CHANGES.md
documenting the reorganization.
2026-03-09 20:40:34 +07:00
tiennm99 c09d2207c0 chore(docs): add hello.txt welcome file 2026-03-09 20:35:48 +07:00
tiennm99 4bd824d707 feat(commands): add /ideas command to generate actionable vault insights
- Add .claude/commands/ideas.md: scans vault and CLI graph data to
  produce tools to build, essays to write, connections to make,
  and experiments to run
- Update my-commands.md with /ideas description and usage
2026-03-08 22:22:06 +07:00
tiennm99 ed27f4cd80 feat(commands): add /challenge and /emerge thinking tool commands
- Add .claude/commands/challenge.md: pressure-tests beliefs by finding
  contradictions and counter-evidence within vault notes
- Add .claude/commands/emerge.md: surfaces hidden patterns and unstated
  ideas implied by the vault's collective content
- Update my-commands.md with descriptions and usage for both commands
2026-03-08 22:15:55 +07:00
tiennm99 2ccd355dfe feat(commands): add /connect thinking tool command
- Add .claude/commands/connect.md: bridges two disparate vault topics
  by tracing backlinks and surfacing unexpected connections
- Update my-commands.md with /connect description and usage
2026-03-08 22:09:31 +07:00
tiennm99 b107ad318b feat(commands): add /my-world command and document it
- Add .claude/commands/my-world.md: loads all 10 vault notes and runs
  CLI graph queries (tags, backlinks, orphans) to summarize context
- Update my-commands.md with /my-world description and usage
- Add my-vault/.obsidian/ config generated during lesson setup
2026-03-08 21:52:34 +07:00
tiennm99 3336f04dff feat(content): add course lessons, scenarios, and start guide
Adds the full initial course content including:
- START-HERE.md with navigation and teaching instructions
- 12 lesson scripts covering delegation, frameworks, research, automation, and more
- Scenario files for customer-feedback, done-framework, file-chaos, first-task,
  large-corpus, receipts, and strategy-notes exercises
2026-03-08 21:09:46 +07:00
Tien Nguyen MinhandGitHub 7091f5f2bf Initial commit 2026-03-08 21:07:39 +07:00
tiennm99 2b505dd5e1 chore(lesson): add Vin Obsidian Workflows lesson assets
Add initial lesson structure for Vin Obsidian Workflows mini-lesson:
- CLAUDE.md: full lesson script and teaching instructions
- my-vault/: 10 interconnected Obsidian notes about Claude Code best practices
- .claude/commands/start-lesson.md: slash command to launch the lesson
- my-commands.md: documentation for custom commands
2026-03-08 21:04:22 +07:00
Tien Nguyen MinhandGitHub 9b34990d35 Initial commit 2026-03-08 21:02:50 +07:00
tiennm99 824e820335 docs(my-plan): add v1 PRD for light novel reading website
Define 9 features with requirements and test conditions covering auth,
reading experience, history tracking, search/discovery, ratings, comments,
notifications, and guest access. Includes UI and technical decisions
using Next.js + PostgreSQL.
2026-03-08 20:11:15 +07:00
tiennm99 06c4f11e14 chore(project): add Claude Code config, project instructions, and plan
Add CLAUDE.md with Ross Mike Workflows lesson instructions, my-plan.md for
project planning, and .claude/ directory with project configuration.
2026-03-08 18:55:03 +07:00
Tien Nguyen MinhandGitHub d04ae8dd06 Initial commit 2026-03-08 18:50:33 +07:00
tiennm99andGitHub bffafe25aa Merge pull request #1 from tiennm99dev/ts-to-js-migration
refactor: migrate quiz-project, gstack, and superpowers to JS+JSDoc
2026-08-18 09:50:40 +07:00
tiennm99 51a4b90163 refactor: migrate quiz-project, gstack, and superpowers to JS+JSDoc
Convert all 41 TypeScript source/config files in cc4e-course/quiz-project
(Next.js), gstack (Astro), and superpowers (Vite/React/Phaser) to plain
JavaScript with JSDoc type annotations, replacing tsconfig.json with
jsconfig.json (strict + checkJs) in each subproject. No behavior changes:
lint, typecheck, test, and build gates match their TypeScript baselines
exactly in all three subprojects. Update stack references in the affected
READMEs accordingly.
2026-08-18 09:49:42 +07:00
tiennm99 364efd422b build(gstack): move from bun to npm
Replace bun.lock with package-lock.json and add package.json#allowScripts for
esbuild and sharp, the two native packages whose install scripts npm 11 gates.

Update README, RUNBOOK, TODOS and CLAUDE.md to npm commands. CLAUDE.md also
claimed ./setup requires bun; it does not any more.

Verified: astro check 0 errors, 39 tests pass, 4 pages build, clean npm ci.
2026-08-17 16:57:29 +07:00
tiennm99 2956ced600 docs: update Pages host to miti99dev after repository transfer 2026-08-13 09:06:30 +07:00
tiennm99 67bd88f41e feat: host cc4e-course quiz and advanced-claude-workflows lesson on the unified Pages site
The quiz app is a pure client-side Next.js page, so it static-exports with
output: 'export' and a basePath under the site; the lesson thumbnail is a
self-contained HTML file served as that directory's index.
2026-08-11 11:45:21 +07:00
tiennm99 5157b63023 chore: unify the labs under one GitHub Pages site
Each web demo builds with its base path under /ai-coding-workflow-labs/,
a single deploy workflow assembles them with a root index, and the
per-directory workflows from the standalone repos are removed.
2026-08-10 18:04:52 +07:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
7b49784c18 chore(deps): bump next from 16.2.3 to 16.2.11 in /quiz-project (#6)
Bumps [next](https://github.com/vercel/next.js) from 16.2.3 to 16.2.11.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Commits](https://github.com/vercel/next.js/compare/v16.2.3...v16.2.11)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 16.2.11
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-25 16:16:10 +07:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
5de91cd232 chore(deps-dev): bump js-yaml from 4.1.1 to 4.3.0 in /quiz-project (#5)
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.1 to 4.3.0.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.1...4.3.0)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.3.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-25 16:15:42 +07:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
c3b81f5a0b chore(deps-dev): bump flatted from 3.3.4 to 3.4.2 in /quiz-project (#2)
Bumps [flatted](https://github.com/WebReflection/flatted) from 3.3.4 to 3.4.2.
- [Commits](https://github.com/WebReflection/flatted/compare/v3.3.4...v3.4.2)

---
updated-dependencies:
- dependency-name: flatted
  dependency-version: 3.4.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 13:35:12 +07:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
7b8fccee95 chore(deps): bump picomatch in /quiz-project (#3)
Bumps  and [picomatch](https://github.com/micromatch/picomatch). These dependencies needed to be updated together.

Updates `picomatch` from 2.3.1 to 2.3.2
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

Updates `picomatch` from 4.0.3 to 4.0.4
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

---
updated-dependencies:
- dependency-name: picomatch
  dependency-version: 2.3.2
  dependency-type: indirect
- dependency-name: picomatch
  dependency-version: 4.0.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 13:33:22 +07:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
0d98a30554 chore(deps): bump next from 16.1.6 to 16.2.3 in /quiz-project (#4)
Bumps [next](https://github.com/vercel/next.js) from 16.1.6 to 16.2.3.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v16.1.6...v16.2.3)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 16.2.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 13:33:17 +07:00
tiennm99andGitHub 8c949bf4ca v0.0.4.0 feat(module-2): tam giác đồng dạng (lớp 8, scale slider) (#4)
* feat(component): similarity-scale slider controller

Single-slider similarity demo for Module 2. Fixed △ABC, scaled △A'B'C' computed
each frame as `centroid_target + k · (vertex − centroid_ABC)` for k ∈ [0.5, 2].
The slider's input event is the only event listener — no Pointer Events here
(we're not dragging vertices in this MVP). AbortController teardown on
astro:before-swap as before.

The renderTicks helper is duplicated from congruence-sss.ts for now — when
Module 4 lands we'll factor it out into a shared module. Premature
abstraction would force a circular import structure for one helper.

* feat(module-2): tam giác đồng dạng (lớp 8) with scale slider

Page at /lop-8/tam-giac-dong-dang/. △ABC fixed on the left at scalene scale-72.8 / 83.2 / 93.4 sides. △A'B'C' is the runtime scaled image, controlled by a
single range input k ∈ [0.5, 2] step 0.05.

Live readout table shows all six side lengths and all three ratios. The killer
moment: drag the slider, watch all 3 ratios stay numerically equal to each
other (= 1/k). That equality IS the definition of similarity, made visible.

Tick marks per Decision D3: 1/2/3 ticks color-paired (#D7263D / #1B998B /
#F46036). Triangle 1 ticks rendered once on mount; triangle 2 ticks redrawn
on every slider input.

Hub: lớp 8 card flips to live status. All 3 grade cards now active —
the autoplan 3-module hero set is complete.

* chore: VERSION 0.0.4.0 + CHANGELOG + TODOS update

v0.0.4.0 = scaffold + Module 3 (góc nội tiếp) + Module 1 (tam giác bằng nhau)
+ Module 2 (tam giác đồng dạng). All three MVP modules from autoplan now live.

Move 2 P1 items to Completed (scale slider, ratio readout) and reduce Module 2
remaining items to P2 (free-drag mode) + P3 (numeric angle readouts).

---------
2026-04-30 00:25:08 +07:00
tiennm99andGitHub 80379c7c08 v0.0.3.0 feat(module-1): drag-to-explore tam giác bằng nhau (lớp 7, SSS) (#3)
* feat(geom-engine): triangle module + position-strict congruentSSS

Third pure module under src/geom-engine/. Adds Triangle type, sides() (returns
named AB / BC / CA lengths), and congruentSSS() with position-strict semantics:
labels define the correspondence (AB↔A'B', BC↔B'C', CA↔C'A'), permuted matches
are NOT counted as congruent. This preserves SGK pedagogy where the labels and
the matched-pair encoding (color + tick marks) carry meaning.

10 new unit tests: identical, translated-congruent, similar-not-congruent (2x scale),
shape-different, EPSILON_LEN tolerance (within and just outside), label-permutation
rejection, and symmetry of the relation.

Total tests: 29 → 39.

* feat(module-1): drag-to-explore tam giác bằng nhau (lớp 7, SSS)

Second interactive theorem demo. Page at /lop-7/tam-giac-bang-nhau/.

Component: src/components/congruence-sss.ts owns 6 draggable vertices (3 per
triangle), each independently captured via setPointerCapture per vertex.
Drag-clamping (16px viewBox padding) keeps every vertex on-screen.

Encoding per autoplan Decision D3 (a11y + SGK-correct in one move):
  AB / A'B' → pair1 #D7263D + 1 tick
  BC / B'C' → pair2 #1B998B + 2 ticks
  CA / C'A' → pair3 #F46036 + 3 ticks
Tick marks are SVG line segments perpendicular to each side at the midpoint,
spaced 5 viewBox-units apart for multi-tick. Redrawn live during drag.

Page: viewBox 400x300 (4:3, side-by-side triangles), single 6KB page including
inline JS bundle (entire geom-engine + canvas controller, minified).

Live side-length readout table + green badge "Hai tam giác bằng nhau (c.c.c)"
that appears when SSS condition holds within EPSILON_LEN. Badge has
role="status" + aria-live="polite" so screen readers announce the moment the
triangles become congruent.

Rigid-motion overlay animation EXPLICITLY DROPPED per autoplan — color+tick
match is the success state.

* feat(hub): activate lớp 7 card linking to tam giác bằng nhau module

Status flips from sap-ra-mat to live; href points at the new module.
i18n/vi.ts gains module1.* strings (intro, instruction, theorem, example,
SGK-aligned theorem statement) so every user-facing string still routes
through t() — adding English in the future is one en.ts file away.

* chore: VERSION 0.0.3.0 + CHANGELOG + TODOS update

v0.0.3.0 = scaffold + Module 3 (góc nội tiếp) + Module 1 (tam giác bằng nhau).
2 of 3 MVP modules now live. Module 2 (tam giác đồng dạng) is next.

* chore: TODOS Module 1 reflects v0.0.3.0 (SSS shipped)

Original P1 items "SSS detector" + "SGK tick-mark encoding" already moved to
Completed in the previous commit. Replace the still-pending M1 section with
the actual remaining work: P2 toggles for SAS/ASA/AAS/cạnh huyền cases, P3 for
extra examples.

---------
2026-04-30 00:17:26 +07:00
tiennm99andGitHub 65326f9e10 v0.0.2.0 feat(module-3): drag-to-explore góc nội tiếp (lớp 9) (#2)
* chore: ignore .gstack/ deploy reports

/land-and-deploy writes per-deploy artifacts to .gstack/deploy-reports/. Those
shouldn't enter the repo. Captured here so future runs don't surface stale diffs.

* feat(geom-engine): circle module + inscribed-angle invariance test

Add the second pure module per autoplan eng decision E1: src/geom-engine/circle.ts
with circle(), pointOnCircle(), projectToCircle() (snap-to-circle for Module 3 drag),
and angleAtVertex() (clamped against IEEE-754 drift to prevent acos NaN at exactly
collinear angles).

The killer-demo property test pins the inscribed-angle theorem as a CI gate: pick
two fixed points A and B on a unit circle, sample 7 different M positions on the
major arc, and assert all sampled inscribed angles AMB stay within 0.5° of the
reference. If this test ever fails, Module 3's central premise is broken.

13 new unit tests, total 29 passing.

* feat(module-3): drag-to-explore góc nội tiếp page (lớp 9)

Ship the first interactive theorem demo. Page lives at /lop-9/goc-noi-tiep/.

Component: src/components/inscribed-angle.ts wires Pointer Events +
setPointerCapture per autoplan eng decision E1. Drag M; on every pointermove,
project the pointer to the circle (M = center + r·normalize(pointer − center))
so M never escapes the circle. Live readouts: ∠AMB at M (inscribed, pair1 red),
∠AOB at center O (central, pair2 teal). All listeners use AbortController
keyed on astro:before-swap so view-transition navigation doesn't leak.

Page: src/pages/lop-9/goc-noi-tiep.astro holds the SVG canvas (viewBox 400x400,
touch-action: none scoped to canvas), theorem panel, and one worked example
walking the 120°/60° canonical case. Astro bundles the script inline so the
single page ships ~7KB total (including the entire geom-engine + component).

* feat(hub): link lớp 9 card to góc nội tiếp module

Hub landing page now branches each grade card on grade.href:
- live cards render as <a> with hover affordance (lớp 9 only, for now)
- coming-soon cards stay as <li> with opacity 0.7 and "Sắp ra mắt" badge

Status taxonomy extended: 'sap-ra-mat' | 'live' so future modules just flip the
status when their page ships.

i18n/vi.ts gains module3.* (intro, theorem, example, instruction copy) plus a new
'live' status string ("Khám phá") so every user-facing string stays inside vi.ts.

* chore: VERSION 0.0.2.0 + CHANGELOG entry

First feature release. v0.0.2.0 = scaffold + Module 3 góc nội tiếp.

* chore: mark TODOS items completed by v0.0.2.0

- Drag M with circle constraint → DONE in src/components/inscribed-angle.ts
- TheoremCanvas primitive first cut → DONE (built directly in Astro)
- Theorem panel + worked examples → PARTIAL (1 of 3 examples shipped)

---------
2026-04-30 00:03:34 +07:00