Skip to content

feat(mindmap-markmap-viewer): interactive offline mind maps from Markdown#82

Open
Jaderson-bit wants to merge 178 commits into
daymade:mainfrom
Jaderson-bit:add-mindmap-markmap-viewer
Open

feat(mindmap-markmap-viewer): interactive offline mind maps from Markdown#82
Jaderson-bit wants to merge 178 commits into
daymade:mainfrom
Jaderson-bit:add-mindmap-markmap-viewer

Conversation

@Jaderson-bit

Copy link
Copy Markdown

New skill: mindmap-markmap-viewer

Turns Markdown outlines, notes, docs, or plans into an interactive mind map — one self-contained HTML file that opens offline anywhere (markmap.js + d3 vendored, pinned exact, and inlined into the page; zero CDN, zero network requests).

▶ Live demo · Source repo

What it adds beyond plain markmap-cli

  • Single-file offline output — the generated .html survives being moved, e-mailed, or opened with no network; CDN-based output breaks in all those cases.
  • Readable by default — white-on-dark rendering with its own backdrop (fixes the classic "map renders blank" white-on-white failure), styling both SVG <text> and <foreignObject> labels.
  • Navigation toolbar — zoom, fit, expand-all/collapse-all, and SVG / PNG export (2× raster, snapshots the current fold state, data-URL downloads that keep the filename under file://).
  • Context-preserving search — keeps every match plus its ancestors and its subtree, accent-insensitive, so a hit never floats without the path that explains it.
  • apply_presets — fills sane frontmatter (branch colors, wrap width, expand level sized by node count) without overriding author values.
  • Streamlit embedding via an isolated iframe (optional import; the core is Python stdlib only).

Quality evidence

  • quick_validate.py (skill-creator): "Skill is valid!"
  • 41-check dependency-free regression suite (evals/test_render_markmap.py) — every check labeled with the bug it locks down; all pass.
  • Hardened against a multi-agent adversarial review (12 confirmed findings, each re-verified by a refuting agent; documented in references/lessons.md).
  • Toolbar/export browser-verified with Playwright.
  • check_doc_skill_lists.py (your drift guard): 62 skills, all doc lists in sync with this PR.

Checklist (CONTRIBUTING)

Note: file count includes the pinned vendored markmap/d3 bundle (~650 KB) — that's the price of the offline single-file guarantee, and versions are pinned exact with provenance documented.

🤖 Generated with Claude Code

daymade and others added 30 commits March 7, 2026 14:54
…ents

## New Skill: continue-claude-work (v1.1.0)
- Recover actionable context from local `.claude` session artifacts
- Compact-boundary-aware extraction (reads Claude's own compaction summaries)
- Subagent workflow recovery (reports completed vs interrupted subagents)
- Session end reason detection (clean exit, interrupted, error cascade, abandoned)
- Size-adaptive strategy for small/large sessions
- Noise filtering (skips 37-53% of session lines)
- Self-session exclusion, stale index fallback, MEMORY.md integration
- Bundled Python script (no external dependencies)
- Security scan passed, argument-hint added

## Skill Updates
- **skill-creator** (v1.5.0): Complete rewrite with evaluation framework
  - Added agents/ (analyzer, comparator, grader)
  - Added eval-viewer/ (generate_review.py, viewer.html)
  - Added scripts/ (run_eval, aggregate_benchmark, improve_description, run_loop)
  - Added references/schemas.md (eval/benchmark schemas)
  - Expanded SKILL.md with inline vs fork guidance, progressive disclosure patterns
  - Enhanced package_skill.py and quick_validate.py

- **transcript-fixer** (v1.2.0): CLI improvements and test coverage
  - Enhanced argument_parser.py and commands.py
  - Added correction_service.py improvements
  - Added test_correction_service.py

- **tunnel-doctor** (v1.4.0): Quick diagnostic script
  - Added scripts/quick_diagnose.py
  - Enhanced SKILL.md with 5-layer conflict model

- **pdf-creator** (v1.1.0): Auto DYLD_LIBRARY_PATH + rendering fixes
  - Auto-detect and set DYLD_LIBRARY_PATH for weasyprint
  - Fixed list rendering and CSS improvements

- **github-contributor** (v1.0.3): Enhanced project evaluation
  - Added evidence-loop, redaction, and merge-ready PR guidance

## Documentation
- Updated marketplace.json (v1.38.0, 42 skills)
- Updated CHANGELOG.md with v1.38.0 entry
- Updated CLAUDE.md (skill count, marketplace version, daymade#42 description)
- Updated README.md (badges, skill section daymade#42, use case, requirements)
- Updated README.zh-CN.md (badges, skill section daymade#42, use case, requirements)
- Fixed absolute paths in continue-claude-work/references/file_structure.md

## Validation
- All skills passed quick_validate.py
- continue-claude-work passed security_scan.py
- marketplace.json validated (valid JSON)
- Cross-checked version consistency across all docs
- Add _ensure_list_spacing() to handle lists without blank lines before them
- Modify _md_to_html() to preprocess markdown content via stdin
- Add automated test suite (scripts/tests/test_list_rendering.py)
- Fix: Lists without preceding blank lines now render correctly
- Original markdown files remain unmodified (preprocessing in memory only)

Root cause: Pandoc requires blank lines before lists per CommonMark spec.
Without preprocessing, lists following paragraphs render as plain text.

Tested scenarios:
✅ Lists with blank lines (normal case)
✅ Lists without blank lines (critical fix)
✅ Ordered lists without blank lines
✅ Original file integrity preserved

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…on workflow

- Add 10-point high-quality PR formula based on real-world success cases
- Add investigation phase workflow (post to issue before PR)
- Add git history tracing techniques (git log, git blame)
- Add evidence-loop pattern (reproduce → trace → link → post)
- Add high-quality PR case study reference
- Update PR checklist with investigation steps
- Emphasize separation of concerns (detailed analysis in issue, fix summary in PR)

Key principles:
- Deep investigation before coding
- Minimal, surgical fixes
- Professional communication
- No internal/irrelevant details in PR

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ripts

New scripts:
- fix_transcript_timestamps.py: Repair malformed timestamps (HH:MM:SS format)
- split_transcript_sections.py: Split transcript by keywords and rebase timestamps
- Automated tests for both scripts

Features:
- Timestamp validation and repair (handle missing colons, invalid ranges)
- Section splitting with custom names
- Rebase timestamps to 00:00:00 for each section
- Preserve speaker format and content integrity
- In-place editing with backup

Documentation updates:
- Add usage examples to SKILL.md
- Clarify dictionary iteration workflow (save stable patterns only)
- Update workflow guides with new script references
- Add script parameter documentation

Use cases:
- Fix ASR output with broken timestamps
- Split long meetings into focused sections
- Prepare sections for independent processing

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add skill to fix broken line wrapping in Claude Code exported .txt files.
Reconstructs tables, paragraphs, paths, and tool calls that were hard-wrapped
at fixed column widths.

Features:
- State-machine parser with next-line look-ahead
- Handles 10 content types (user prompts, Claude responses, tables, tool calls, etc.)
- Pangu spacing for CJK/ASCII mixed text
- 53 automated validation checks
- Safety: never modifies original files, verifies marker counts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds dependency detection before skill creation starts, preventing
mid-workflow failures (e.g., gitleaks missing at packaging, PyYAML
missing at validation). Documents correct script invocation via
python3 -m syntax and auto-installation commands.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…losure

Move verbose sections to references/ files, keeping concise pointers in
CLAUDE.md. Zero content loss — all documentation preserved in reference
files that Claude loads on demand.

Moved to references/:
- plugin-architecture.md (296 lines) — architecture docs
- plugin-troubleshooting.md (441 lines) — installation debugging
- new-skill-guide.md (241 lines) — detailed templates/checklists
- promotion-policy.md (60 lines) — third-party request policy
- youtube-downloader/references/internal-sop.md — yt-dlp SOP

Also fixed: Available Skills daymade#36-42 indentation, deduplicated 4x
versioning sections into one, removed stale notes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- add scrapling-skill with validated CLI workflow, diagnostics, packaging, and docs integration
- fix skill-creator package_skill.py so direct script invocation works from repo root
- fix continue-claude-work extract_resume_context.py typing compatibility for local python3
- bump marketplace to 1.39.0 and updated skill versions
Replace real Zhipu GLM API key with fake placeholder in mask_secret()
and SecretStr docstring examples. The real key was exposed in this
PUBLIC repo.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ndings

transcript-fixer:
- Add common_words.py safety system (blocks common Chinese words from dictionary)
- Add --audit command to scan existing dictionary for risky rules
- Add --force flag to override safety checks explicitly
- Fix substring corruption (产线数据→产线束据, 现金流→现现金流)
- Unified position-aware replacement with _already_corrected() check
- 69 tests covering all production false positive scenarios

tunnel-doctor:
- Add Step 5A: Tailscale SSH proxy silent failure on WSL
- Add Step 5B: App Store vs Standalone Tailscale on macOS
- Add Go net/http NO_PROXY CIDR incompatibility warning
- Add utun interface identification (MTU 1280=Tailscale, 4064=Shadowrocket)
- Fix "Four→Five Conflict Layers" inconsistency in reference doc
- Add complete working Shadowrocket config reference

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Claude IS the AI — when running inside Claude Code, use Claude's own
language understanding for Stage 2 corrections instead of calling an
external API. No API key needed by default.

New capabilities in native mode:
- Intelligent paragraph breaks at logical topic transitions
- Filler word reduction (excessive repetition removal)
- Interactive review with confidence-level tables
- Context-aware judgment using full document context

API mode (GLM) remains available for batch/automation use cases.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…AskUserQuestion

New skill: asr-transcribe-to-text (v1.0.0)
- Transcribe audio/video via configurable ASR endpoint (Qwen3-ASR default)
- Persistent config in CLAUDE_PLUGIN_DATA (endpoint, model, proxy bypass)
- Single-request-first strategy (empirically proven: 55min in one request)
- Fallback overlap-merge script for very long audio (18min chunks, 2min overlap)
- AskUserQuestion at config init, health check failure, and output verification

skill-creator optimization (v1.5.1 → v1.6.0)
- Add AskUserQuestion best practices section (Re-ground/Simplify/Recommend/Options)
- Inject structured decision points at 8 key workflow stages
- Inspired by gstack's atomic question pattern

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Rename skill to better reflect its purpose (document-to-markdown conversion)
- Update SKILL.md name, description, and trigger keywords
- Add benchmark reference (2026-03-22)
- Update marketplace.json entry (name, skills path, version 2.0.0)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…gnosis

Real-world findings from debugging docker build failures on macOS with
OrbStack + Shadowrocket:

- Add docker pull vs docker build vs docker run proxy path distinction table
- Add 2G-1: --network host workaround for OrbStack transparent proxy broken by TUN
- Rewrite 2G-2: use host.internal (not 127.0.0.1) for OrbStack Docker proxy
- Add 2G-4: container healthcheck failure from lowercase http_proxy env var leak
- Add 3 new symptom entries to Step 1 diagnostic index
- Add smoking gun diagnosis: wget showing "127.0.0.1: Connection refused"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… full rename cleanup

- Add CJK bold spacing fix: insert spaces around **bold** spans containing
  CJK characters for correct rendering (handles emoji adjacency, already-spaced)
- Add JSON pretty-print: auto-format JSON code blocks with 2-space indent
- Add 31 unit tests covering all post-processing functions
- Fix pandoc simple table detection (1-space column gaps)
- Fix image path double-nesting when --assets-dir ends with 'media'
- Rename all markdown-tools references across 15 files (README, QUICKSTART,
  marketplace.json, CLAUDE.md, meeting-minutes-taker, GitHub templates)
- Add 5-tool benchmark report (Docling/MarkItDown/Pandoc/Mammoth/ours)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… to 2.1.0

Sync description with actual capabilities: CJK bold spacing, JSON pretty-print,
simple table support, 31 tests, benchmark score. Add cjk/chinese keywords.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…kill draft

- pdf-creator v1.2.0: theme system (default/warm-terra), dual backend
  (weasyprint/chrome auto-detect), argparse CLI, extracted CSS to themes/
- terraform-skill: operational traps from real deployments (provisioner
  timing, DNS duplication, multi-env isolation, pre-deploy validation)
- asr-transcribe-to-text: add security scan marker

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…iew Team

- Correct source accessibility: distinguish circular verification (forbidden)
  from exclusive information advantage (encouraged)
- Add Counter-Review Team with 5 specialized agents (claim-validator,
  source-diversity-checker, recency-validator, contradiction-finder,
  counter-review-coordinator)
- Add Enterprise Research Mode: 6-dimension data collection framework
  with SWOT, competitive barrier, and risk matrix analysis
- Update version to 2.4.0
- Add comprehensive reference docs:
  - source_accessibility_policy.md
  - V6_1_improvements.md
  - counter_review_team_guide.md
  - enterprise_analysis_frameworks.md
  - enterprise_quality_checklist.md
  - enterprise_research_methodology.md
  - quality_gates.md
  - report_template_v6.md
  - research_notes_format.md
  - subagent_prompt.md

Based on "深度推理" case study methodology lessons learned.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ample

Replace \"深度推理(上海)科技有限公司\" with \"字节跳动子公司\"
as the case study example to avoid exposing user's own company info.

Also update .gitignore to exclude:
- deep-research-output/ (contains sensitive research data)
- recovered_deep_research/
- .opencli/
- douban-skill/ (work-in-progress)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…dology

New skill: douban-skill
- Full export of Douban (豆瓣) book/movie/music/game collections via Frodo API
- RSS incremental sync for daily updates
- Python stdlib only, zero dependencies, cross-platform (macOS/Windows/Linux)
- Documented 7 failed approaches (PoW anti-scraping) and why Frodo API is the only working solution
- Pre-flight user validation, KeyboardInterrupt handling, pagination bug fix

skill-creator enhancements:
- Add development methodology reference (8-phase process with prior art research,
  counter review, and real failure case studies)
- Sync upstream changes: improve_description.py now uses `claude -p` instead of
  Anthropic SDK (no ANTHROPIC_API_KEY needed), remove stale "extended thinking" ref
- Add "Updating an existing skill" guidance to Claude.ai and Cowork sections
- Restore test case heuristic guidance for objective vs subjective skills

README updates:
- Document fork advantages vs upstream with quality comparison table (65 vs 42)
- Bilingual (EN + ZH-CN) with consistent content

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…UDE.md)

Prevents sensitive data (user paths, phone numbers, personal IDs) from
entering git history. Born from redacting 6 historical commits.

- .gitleaks.toml: custom rules for absolute paths, phone numbers, usernames
- .githooks/pre-commit: dual-layer scan (gitleaks + regex fallback)
- CLAUDE.md: updated Privacy section documenting the defense system

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…nciple, add date handling rules

- SKILL.md length driven by information density, not line count
- Factual dates (release dates, "last verified") should be kept — they help readers judge freshness
- Conditional date logic ("before X use old API") should be avoided

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… recovery

Previously, recover_content.py saved all files flat in the output directory,
causing files with the same name (e.g., src/utils.py and tests/utils.py) to
overwrite each other.

Now the script preserves the original directory structure, creating subdirectories
as needed within the output directory.

- Bump version: 1.0.0 → 1.0.1

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace hardcoded user paths that triggered gitleaks PII detection:
- /Users/username/ → ~/
- /Users/user/ → ~/
- -Users-username- → -Users-<username>- (normalized paths)

Also fix the sed example to use <home> placeholder instead of
regex pattern that would match actual usernames.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Update SKILL.md and workflow_examples.md to reflect the new behavior
of recover_content.py which now preserves original directory structure:

- SKILL.md: Add 'preserving the original directory structure' note
- SKILL.md: Update verification examples to use find command and
  show subdirectory paths (e.g., ./recovered_content/src/components/)
- workflow_examples.md: Update diff example to account for nested paths

Version bump: 1.0.1 → 1.0.2

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
asr-transcribe-to-text:
- Add local MLX transcription path (macOS Apple Silicon, 15-27x realtime)
- Add bundled script transcribe_local_mlx.py with max_tokens=200000
- Add local_mlx_guide.md with benchmarks and truncation trap docs
- Auto-detect platform and recommend local vs remote mode
- Fix audio extraction format (MP3 → WAV 16kHz mono PCM)
- Add Step 5: recommend transcript-fixer after transcription

transcript-fixer:
- Optimize SKILL.md from 289 → 153 lines (best practices compliance)
- Move FALSE_POSITIVE_RISKS (40 lines) to references/false_positive_guide.md
- Move Example Session to references/example_session.md
- Improve description for better triggering (226 → 580 chars)
- Add handoff to meeting-minutes-taker

skill-creator:
- Add "Pipeline Handoff" pattern to Skill Writing Guide
- Add pipeline check reminder in Step 4 (Edit the Skill)

Pipeline handoffs added to 8 skills forming 6 chains:
- youtube-downloader → asr-transcribe-to-text → transcript-fixer → meeting-minutes-taker → pdf/ppt-creator
- deep-research → fact-checker → pdf/ppt-creator
- doc-to-markdown → docs-cleaner / fact-checker
- claude-code-history-files-finder → continue-claude-work

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
SKILL.md: rewritten following Anthropic best practices
- Concise (233 lines, down from 347)
- Critical VHS parser limitations section (base64 workaround)
- Advanced patterns: self-bootstrap, output filtering, frame verification
- Better description for skill triggering

New files:
- references/advanced_patterns.md: production patterns from dbskill project
- assets/templates/self-bootstrap.tape: self-cleaning demo template

auto_generate_demo.py: new flags
- --bootstrap: hidden setup commands (self-cleaning state)
- --filter: regex pattern to filter noisy output
- --speed: post-processing speed multiplier (gifsicle)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
daymade and others added 24 commits May 31, 2026 00:42
…, add date_range

Live test (doc-governance follow-up) found connected_entities took an entity_categories param that does NOT exist on the co-mentions/entities endpoint (OpenAPI spec confirmed) — passing it was silently ignored, so 'category filtering' returned all 6 groups. Removed it. Replaced with date_range -> query.filters.timestamp (ANSI date-time, which the spec DOES support) — live-tested, returns the co-mention graph for the window. Results are already grouped by category; read the group you want.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…rget L3->L4

Doc-governance pass: the endpoint coverage table in rest_ext.py's module docstring still marked analyst_ratings/price_target as L3, contradicting the method docstrings + verified_api_signatures.md already bumped to L4 (live-tested 2026-05-31). Synced the table.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…point table

Doc-governance root-cause fix: the module-docstring 'covered endpoints' table copied verified_api_signatures.md (endpoint list + verification levels) and had drifted twice this session — it listed only the original 7 endpoints (missing the 12 added) and separately needed the L3->L4 fix. Replaced the copied table with a one-line coverage overview pointing to verified_api_signatures.md as the single source for the full list / signatures / L3-L4 levels. Removes the copy that caused the drift.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Automated repository environment configuration, fault diagnosis, and repair
for non-technical users. Includes SessionStart hook initialization,
counter-review workflows, and git history sanitization.

New files:
- auto-repo-setup/SKILL.md
- auto-repo-setup/scripts/check_env.py
- auto-repo-setup/scripts/init_session_start_hook.py
- auto-repo-setup/scripts/sanitize_history.sh
- auto-repo-setup/references/git_safety.md
- auto-repo-setup/references/pii_guard.md
- auto-repo-setup/references/onboarding_template.md

Updated:
- .claude-plugin/marketplace.json (bump to v1.60.0)
- CHANGELOG.md
- CLAUDE.md (skill count 53→54)
- README.md (skill count 52→53, add skill description)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Merged by Claude Code at user request.
…er-safety

fix(macos-cleaner): harden deletion safety checks
…alid

Codex's strict YAML parser rejected two unquoted plain-scalar descriptions
that Claude Code's lenient frontmatter parser accepted:

- tunnel-doctor: ': ' inside literal ssh output ("debug2: resolving",
  "debug1: connect") triggered a ScannerError. Wrapped the description in
  single quotes so the ssh strings stay verbatim.
- benchmark-due-diligence: ' #' in "Product Hunt daymade#1" silently truncated the
  parsed description at parse time. Reordered to "daymade#1 on Product Hunt"
  (no keyword loss, stays unquoted).

Bump tunnel-doctor 1.5.1 -> 1.5.2, benchmark-due-diligence 1.0.0 -> 1.0.1.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…matter YAML

- warm-terra-menu theme: warm-terra variant for 2-column long-text module
  menus. Full-column wrap removes first-column overflow; a Menlo unicode-range
  keeps CJK inline-code from rendering blank in Preview/Adobe.
- pdf-creator SKILL.md frontmatter: "**Scope: markdown -> PDF only.**" ->
  "**Scope - markdown -> PDF only.**" (the ': ' broke strict YAML / codex).

Bump daymade-docs 1.0.2 -> 1.1.0 (MINOR, new theme). CHANGELOG [Unreleased]
also records the tunnel-doctor/benchmark YAML fixes from 111fb8d.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…to batch strategy

Four hard rules for parallel batch ASR fixing across many files:
- hardcode the file list into the script (Workflow args silently drops non-ASCII/bracket/path strings)
- scope each agent to one file, forbid cross-file grep -r/sed (prevents out-of-batch edits)
- git diff verify after: --name-only catches strays, grep deleted lines for invariants (speaker labels untouched)
- false-positive filter on aggregated dict suggestions (~80 raw → ~18 safe non-word mappings)

Bump daymade-audio 1.1.0 → 1.2.0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Compress preload-heavy skill descriptions while keeping every trigger keyword, symptom phrase, and error code; move mechanism/enumeration detail into the body. Also drop bare generic trigger words from douban-skill (export/backup/sync/collection) that pulled in unrelated tasks.

Descriptions are preloaded for trigger selection, so this trims always-on context (~30%) and sharpens trigger distinctiveness without removing any capability.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Renders a terminal CLI program's colored output to a PNG so the rendered
result (contrast, alignment, background blocks, ANSI colors) can be seen
and judged visually instead of guessing from raw escape codes / hex values.
Bundles render_ansi.sh (freeze with headless-Chrome fallback) + ansi2html.py
(stdlib ANSI→HTML, preserves truecolor background blocks).

Register in the daymade-claude-code suite (1.0.0 -> 1.1.0) and set the
marketplace release version to 1.61.0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
# Conflicts:
#	.claude-plugin/marketplace.json
#	CHANGELOG.md
Convert a PDF into a single self-contained, readable HTML file that
preserves images, charts and reading order, with optional parallel
translation into another language. Distilled from a real
PDF-to-other-language HTML session.

Bundles three scripts (structured extraction with decorative-image
detection, data-driven HTML build with font-size heading inference and
base64-inlined images, adaptive headless-Chrome visual verification) and
two references (Dynamic-Workflow parallel translation with fidelity
rules; failure-cases / do-not-attempt). Registered under daymade-docs
(1.1.0 -> 1.2.0).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…lace-dev SSOT

- marketplace-dev cache_and_source_patterns.md: add "Why plugin boundaries matter"
  section (toggle granularity, baoyu-skills failure case, false-green trap) — the
  single WHY+HOW SSOT for packaging
- skill-creator: drop the misplaced packaging-architecture reference; Step 8 now
  points to marketplace-dev's SSOT (auto-install + read) instead of restating rules
- skill-reviewer: remove marketplace_template.json (it shipped the reject-by-validator
  anti-patterns source:"./" + skills:["./"]); point to marketplace-dev instead
- README / README.zh-CN: drop 4 now-broken references to the deleted template

Plugin packaging belongs to the marketplace-dev domain; this collapses 3 divergent
copies (one actively wrong) into one authoritative source.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sync the human-facing skill lists with the manifest for the newly added
pdf-to-html skill (marketplace.json + CLAUDE.md already carry it).

Pre-existing README drift (8 other skills missing from the English list,
1 from the zh-CN list) is intentionally left untouched — that is a
separate backlog, not introduced by this change.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- CLAUDE.md Available Skills list completed to the authoritative 61 (added
  marketplace-dev, asr-transcribe-to-text, bigdata-skill, gangtise-copilot,
  llm-wiki-setup, benchmark-due-diligence, pdf-to-html, terminal-screenshot;
  removed the wechat-article-scraper ghost entry)
- README.md / README.zh-CN.md badges + descriptions synced to 61; version
  aligned to 1.62.0; added terminal-screenshot section
- CHANGELOG v1.62.0 entry
- new check_doc_skill_lists.py drift guard (marketplace.json vs the 3 doc lists)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Added rich sections for skills present in marketplace.json but missing from the
README skill lists: asr-transcribe-to-text, marketplace-dev, skill-creator,
feishu-doc-scraper, bigdata-skill, gangtise-copilot, llm-wiki-setup,
benchmark-due-diligence (+ auto-repo-setup in zh-CN). check_doc_skill_lists.py
now reports all three docs in sync with the authoritative 61.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Add the new doc-drift guard to the publish checklist in both CLAUDE.md and
  references/new-skill-guide.md, beside check_marketplace.sh, so future skill
  additions run it and the three doc lists cannot silently drift again.
- CHANGELOG [1.62.0]: drop the now-stale Known gaps note (README sections were
  backfilled in this same release, commit dd59e88) and record the completed work.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…asurement contamination + reverse-path trap

tunnel-doctor: add "TUN Measurement Contamination" section — raw probes lie under a global TUN proxy (nc -z 0.00s, ping, foreign ip-api show the exit not the home IP); trust time_appconnect / in-region geo / config-decode+GUI instead. Added matching trigger phrases.

debugging-network-issues: add cognitive Trap 12 "Reverse-path / directional asymmetry" (A->B healthy != B->A; an external probe only proves a node's return direction, missing the user's failing outbound direction); synced the SKILL.md trap list; fixed a stale "All nine traps" count.

Synced marketplace.json (metadata 1.60.0 + both plugin descriptions), CHANGELOG, README x2, CLAUDE.md. Content generalized/anonymized from a private incident; no private identifiers, gitleaks + dedup scan clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ues v1.1.0 onto the v1.62 / 61-skill base

Resolved 3 conflicts (kept remote as the base, re-applied my changes on top — no remote work lost):
- tunnel-doctor/SKILL.md: kept remote's strict-YAML multiline description and appended my TUN-measurement trigger phrase; the body "TUN Measurement Contamination" section auto-merged cleanly.
- marketplace.json: tunnel-doctor 1.5.2 -> 1.6.0, debugging-network-issues 1.0.1 -> 1.1.0, metadata 1.62.0 -> 1.63.0; re-applied both plugin-description additions (TUN / reverse-path).
- CHANGELOG.md: kept remote structure (warm-terra-menu + strict-YAML Fixed block + 1.62.0/1.60.1/1.60.0 history), re-added my two [Unreleased] Added entries.

All other files (CLAUDE.md, README.md, README.zh-CN.md, debugging-network-issues SKILL.md + cognitive-traps.md) auto-merged cleanly: remote's 61-skill backfill and my edits coexist.

Note: a pre-existing drift on origin/main (llm-wiki-setup is registered in marketplace.json but its SKILL.md is absent on the remote) is unrelated to this change and left untouched for separate handling.
…s/examples) (daymade#81)

Co-create a personal investment-research LLM Wiki by interviewing the user, not handing a template. Marketplace entry + docs were already backfilled (da9796f); this commits the skill directory itself.
- interview.md: critique-the-strawman elicitation kept at concept level, operational craft deliberately left out
- templates: CLAUDE-skeleton (mechanism layer) + empty vault scaffold + lint-vault.py + pre-commit
- scripts: init_vault.py
- examples: investment-research-CLAUDE.md marked do-not-copy

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…down

One self-contained HTML (markmap.js + d3 vendored, pinned, inlined; zero CDN) with white-on-dark rendering, zoom/expand toolbar, SVG/PNG export, expand-by-level, and accent-insensitive context-preserving search (match + ancestors + descendants). Python stdlib only; 41-check dep-free regression suite; hardened via 12-finding adversarial review. Marketplace entry + README (daymade#64) + README.zh-CN (daymade#64) + CLAUDE.md (daymade#62) + CHANGELOG; drift guard check_doc_skill_lists.py passes (62 in sync).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 9, 2026 21:29

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds a new mindmap-markmap-viewer skill that renders Markdown outlines as offline, self-contained markmap HTML (white-on-dark) with expand-level controls, context-preserving search, and export tooling, and then wires it into the marketplace/docs.

Changes:

  • Introduces render_markmap.py with offline HTML generation (inlined vendored libs), frontmatter manipulation, and search/filtering.
  • Adds a stdlib-only regression suite plus internal references/docs for the skill.
  • Registers the new skill across marketplace metadata and repo-level READMEs/changelog (skill count bumped to 62).

Reviewed changes

Copilot reviewed 13 out of 20 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
mindmap-markmap-viewer/scripts/render_markmap.py Core implementation: offline HTML renderer, frontmatter edits, presets, search/filter logic
mindmap-markmap-viewer/evals/test_render_markmap.py Dependency-free regression suite covering escaping/frontmatter/search edge cases
mindmap-markmap-viewer/evals/evals.json Adds evaluation prompts/expectations for the new skill
mindmap-markmap-viewer/references/internals.md Internal design notes and rationale for non-obvious implementation decisions
mindmap-markmap-viewer/references/lessons.md Documents real-world failure modes and the fixes locked down by tests
mindmap-markmap-viewer/assets/vendor/README.md Documents pinned vendored library versions and refresh steps
mindmap-markmap-viewer/assets/example.md Provides an example outline with markmap frontmatter
mindmap-markmap-viewer/SKILL.md Skill usage guide and triggering guidance for Claude Code
mindmap-markmap-viewer/README.md Skill-level README for standalone repo usage/demo/testing
.claude-plugin/marketplace.json Registers the new skill in the marketplace plugin manifest
CHANGELOG.md Announces the new skill release entry
CLAUDE.md Updates repo overview + adds the new skill to the enumerated list
README.md Updates skills count badge + adds marketplace catalog entry for the new skill
README.zh-CN.md Updates skills count badge + adds Chinese catalog entry for the new skill

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +187 to +188
def build_html(src: str, height: int = 850, background: str = "#0e1117",
vendor: str = None, toolbar: bool = True, inline: bool = True) -> str:
Comment on lines +229 to +230
f" html, body {{ margin:0; padding:0; background: {background}; }}\n"
f" #markmap {{ width:100%; height:{height - 12}px; display:block; }}\n"
f"{head_css}\n"
"<style>\n"
f" html, body {{ margin:0; padding:0; background: {background}; }}\n"
f" #markmap {{ width:100%; height:{height - 12}px; display:block; }}\n"
Comment on lines +459 to +477
for line in body.split("\n"):
if not line.strip():
continue
if line.startswith("#"): # heading: level = number of leading '#'
rank = len(line) - len(line.lstrip("#"))
text = line.lstrip("#").strip()
last_h = rank
kinds.append("h")
levels.append(rank)
else: # list item: level relative to the last heading + indentation
m = _BULLET.match(line)
if not m:
continue
indent = len(m.group(1).expandtabs(2)) // 2
text = m.group(2)
kinds.append("b")
levels.append(last_h + 1 + indent)
lines.append(line)
matched.append(q in _norm(text))
Comment on lines +103 to +106
function buildExportSvg() {
var bb = svg.querySelector("g").getBBox(); // laid-out tree, local coords
var pad = 20;
var x = Math.floor(bb.x - pad), y = Math.floor(bb.y - pad);
Comment on lines +74 to +80
if (!M || !M.Markmap || !M.Transformer) {
document.body.insertAdjacentHTML("beforeend",
'<p style="color:#ff8a8a;font-family:system-ui,sans-serif;padding:1rem">' +
"Could not load the markmap libraries. Keep the <code>vendor/</code> folder " +
"next to this HTML file so the map can open offline.</p>");
return;
}
Comment on lines +54 to +55
check("inline default: it's actually self-contained (libs + toolbar CSS embedded)",
len(inline_doc) > 200000 and "mm-toolbar" in inline_doc and "<style>" in inline_doc)
Jaderson-bit and others added 2 commits June 9, 2026 21:25
Same zero-install prompt added to the source repo README, verified working in the Claude app.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ction

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@daymade daymade force-pushed the main branch 2 times, most recently from 915a8c6 to 9c9615e Compare June 28, 2026 16:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants