)]}'
{
  "log": [
    {
      "commit": "410500567f60a53cca88edf003f7c68ec6eaf0bf",
      "tree": "5a6c96f68b7572d924f5735bc0b0b747bfb78bdf",
      "parents": [
        "d64addcc2de081a4d5e8db589a63cac46ca3a857"
      ],
      "author": {
        "name": "zclllyybb",
        "email": "zhaochangle@selectdb.com",
        "time": "Mon Jun 01 17:13:31 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 17:13:31 2026 +0800"
      },
      "message": "Add doris-profile-reader (#1)"
    },
    {
      "commit": "d64addcc2de081a4d5e8db589a63cac46ca3a857",
      "tree": "00f8f883e195453ea2387516f3edefad2cda57b2",
      "parents": [
        "0528604a5cab97d0fed3fb861a738b530bfc136a"
      ],
      "author": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Sun May 31 00:09:04 2026 +0800"
      },
      "committer": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Sun May 31 00:09:04 2026 +0800"
      },
      "message": "docs: document the verify/ suite and link the doris-cli repo\n\nAdd a Verification section (L1 knowledge / L2 CLI contract / L3 behavior)\nwith a pointer to verify/, add verify/ to the layout tree, and link the two\ncompanion doris-cli repository references to https://github.com/apache/doris-cli.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "0528604a5cab97d0fed3fb861a738b530bfc136a",
      "tree": "2b4f8cf629a67c1254bcc965939b717cf3cc2cca",
      "parents": [
        "14dd9cedb17accb3bfcbde288fa4230f42100263"
      ],
      "author": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Sat May 30 23:55:19 2026 +0800"
      },
      "committer": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Sat May 30 23:55:19 2026 +0800"
      },
      "message": "test(verify): add L3 behavioral verification layer\n\nDrive a nested `claude -p` to check the skills *behave* as written, not\njust that the prose is correct — three harnesses:\n\nbehavior/run.sh — guardrail cases with the skill injected via\n  --append-system-prompt: evidence-first hard gate, connection-first,\n  --profile safety gate, sizing-as-total-vCPU, brand-neutrality. Two\n  nondeterministic guardrails (brand vendor-leak, sizing per-node) use a\n  non-fatal `warnassert` (the L3 analogue of L2\u0027s xassert) so a slip is\n  surfaced loudly without failing CI. (18 pass / 0 fail / 2 warn)\nbehavior/e2e-advisor-ddl.sh — advisor -\u003e CREATE TABLE -\u003e live cluster\n  loopback; the live Doris is the judge. REUSE\u003d1 re-validates the last\n  saved advisor response without a new model call. 3/3 created on 5.0.0.\nbehavior/triggering.sh — skill-router triggering: install the skills in\n  an isolated .claude/skills/ (excluding the global velodb-best-practices\n  look-alike, asserted from the init event\u0027s .skills[]) and detect\n  activation structurally from the `Skill` tool-use event in stream-json,\n  not from prose markers (the base model emits Doris DDL unprompted). 5/5.\n\nFindings the suite surfaced: a `;`-in-comment DDL truncation that faked a\n\"created\" (extractor now strips comments before splitting); the model\nfrequently name-drops a commercial distribution even with the neutral\nskill loaded; the skill\u0027s own per-node sizing tables tempt the per-node\noutput the rule forbids. Skills left as-is by choice.\n\nAlso force LC_ALL\u003den_US.UTF-8 in run.sh — under the C locale BSD grep\nmis-handles (and can abort on) the multibyte Chinese assertion patterns.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "14dd9cedb17accb3bfcbde288fa4230f42100263",
      "tree": "a63291f7a1d11aeab61d6fa51efba90e09410d38",
      "parents": [
        "67e33cfaf5c5c4fea42252c06abc6fa948abb907"
      ],
      "author": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Sat May 30 21:39:16 2026 +0800"
      },
      "committer": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Sat May 30 21:39:16 2026 +0800"
      },
      "message": "test(verify): extend L1/L2 and verify on Doris 5.0.0\n\nL1 (now 29 cases, was 27) — re-verified green on 5.0.0/cloud:\n- async-mv-refresh-interval-second.fail: EVERY 30 SECOND rejected (min 1 MINUTE)\n- bool-default-null.fail: BOOLEAN DEFAULT \"null\" rejected (invalid boolean literal)\n\nL2 (now 25 checks):\n- add assertions for profile diff, profile history, and use (existence-only)\n- add xassert (xfail/xpass) mechanism for known, version-specific doriscli gaps\n- surfaced + tracked the query_stats.total_scan_rows parser gap, then confirmed\n  its fix (doris-cli dd3f417) via the xfail-\u003expass flip; reverted to a plain assert\n\nDocs: README L1/L2 sections updated for 5.0.0; CLI-CONTRACT.md documents the\nprofile diff/history fields and notes use has no JSON contract.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "67e33cfaf5c5c4fea42252c06abc6fa948abb907",
      "tree": "1cd99caa7f6949a85d3580ade9326bb9c61905c0",
      "parents": [
        "673605732ad0a12ca1c4fe6d71ec081b6c9a8413"
      ],
      "author": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Sat May 30 19:17:39 2026 +0800"
      },
      "committer": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Sat May 30 19:17:39 2026 +0800"
      },
      "message": "docs: correct cli-investigation.md against doris-cli source\n\nAudited references/cli-investigation.md claim-by-claim against\n../doris-cli/src. Commands, flags, the tablet-fields table, most\nprofile fields, p50/p99, and the REST URLs all check out. Fixed 4\ninaccuracies:\n\n- scanned_tables is a JSON object keyed by table name (not an array);\n  each entry carries ddl/total_rows/tablet_skew\n- auth status mysql_status is \"connected\" or \"error: \u003creason\u003e\", never\n  \"unreachable\" (that value is http_status only)\n- on profile-fetch failure the response surfaces note + fetch_attempts;\n  served_by/fetch_via are success-only\n- profile eviction is a per-FE count cap (max_query_profile_num), not a\n  5-15 minute time window\n\nAlso added the npm install hint to match the README.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "673605732ad0a12ca1c4fe6d71ec081b6c9a8413",
      "tree": "d56582b01df8be38d2679b1dc75e61abc047c496",
      "parents": [
        "b5468a9b3308c972474fabf193dac629845d86fd"
      ],
      "author": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Sat May 30 19:17:32 2026 +0800"
      },
      "committer": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Sat May 30 19:17:32 2026 +0800"
      },
      "message": "docs: recommend npm install for doriscli\n\nPromote `npm install -g @apache-doris/doriscli` (prebuilt binaries, no\nRust toolchain) as the primary way to install doriscli, matching the\ndoris-cli README. Keep the companion repo as the pointer for source\nbuilds / other platforms, and preserve the SQL + HTTP fallback note.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "b5468a9b3308c972474fabf193dac629845d86fd",
      "tree": "09845fde922acb56ebd2989f8c4ee1f7cbb5d83f",
      "parents": [
        "4d7fa0cadaa97a0ddcccccf9b9c61094a3ec03d3"
      ],
      "author": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Sat May 30 07:37:27 2026 +0800"
      },
      "committer": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Sat May 30 07:37:27 2026 +0800"
      },
      "message": "test: add verify/ regression suite for skill claims\n\nGround-truth verification of the skills against a real Doris cluster +\ndoriscli, as a reusable (CI-friendly) suite:\n\n- L1 (verify/run.sh): runs each DDL template (T1-T5) and every §2 DDL\n  hard-constraint as an accept/reject case over the MySQL protocol,\n  asserting Doris accepts/rejects it exactly as the skill claims (27\n  cases; reject cases also assert the documented error reason). Version /\n  deployment-mode gated; uses a guarded throwaway database.\n- L2 (verify/cli/run.sh): asserts every command + JSON field in\n  CLI-CONTRACT.md resolves against the live cluster via doriscli\n  (auto-detecting the binary and FE HTTP port).\n\nConnection config in verify/env.sh and reports/ are gitignored.\nVerified on Doris 4.1.1.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "4d7fa0cadaa97a0ddcccccf9b9c61094a3ec03d3",
      "tree": "e663f40b05afac165b9442c5a2a30204c2cb8315",
      "parents": [
        "c7472737487c5b2feb0338e929ca9c4d5f2729a4"
      ],
      "author": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Sat May 30 07:37:26 2026 +0800"
      },
      "committer": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Sat May 30 07:37:26 2026 +0800"
      },
      "message": "fix: store_row_column works on DUPLICATE in Doris 4.x\n\nThe DDL gotcha claimed `store_row_column\u003d\"true\"` is rejected on both\nAGGREGATE and DUPLICATE. Verified against Doris 4.1.1: it is accepted and\npersisted on DUPLICATE — only AGGREGATE is rejected (\"Aggregate table\ncan\u0027t support row column\"). Corrected the Pre-Flight Checklist (SKILL.md)\nand the DDL Gotchas reference.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "c7472737487c5b2feb0338e929ca9c4d5f2729a4",
      "tree": "308c5b77703726acccace049988c27344818230f",
      "parents": [
        "790efae7fd14b78bbd6f375754252cbeecb7a742"
      ],
      "author": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Fri May 29 15:43:40 2026 +0800"
      },
      "committer": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Fri May 29 15:44:58 2026 +0800"
      },
      "message": "docs: broaden install/usage beyond Claude Code\n\nThe skills are plain Agent Skills (SKILL.md) and work across agent tools, not just\nClaude Code. Document `npx skills add apache/doris-skills` (cross-agent, auto-discovers\nboth skills and bundles references/) as the primary install, keeping manual cp as fallback.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "790efae7fd14b78bbd6f375754252cbeecb7a742",
      "tree": "6cd5f0dad2f5e00e7fbcbce4a70351ee2d60e8c6",
      "parents": [
        "0e68b1f837df3a838fe070b1b4d637e07c22f46f"
      ],
      "author": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Fri May 29 15:23:50 2026 +0800"
      },
      "committer": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Fri May 29 15:23:50 2026 +0800"
      },
      "message": "chore: inline doriscli/Apache Doris, drop placeholder render layer\n\nThe skills now pair directly with doriscli (the Apache Doris CLI) instead of\nrendering per-distribution via a placeholder/values mechanism.\n\n- Inline the 5 placeholder tokens to their Apache Doris values\n  (doriscli, Apache Doris, DORIS_CLI_PATH, Apache Doris cloud mode).\n- Neutralize cloud content: drop the nonexistent `cloud cluster get` command\n  (use `doriscli auth status` backends instead) and the CLOUD_OPS_SKILL refs.\n- Remove scaffolding: PLACEHOLDERS.md, scripts/ (render.sh + lint), and the\n  redundant hand-maintained AGENTS.md.\n- Add CLI-CONTRACT.md documenting the doriscli commands/fields the skills rely on.\n- Rewrite README to \"pairs with doriscli\".\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "0e68b1f837df3a838fe070b1b4d637e07c22f46f",
      "tree": "e1d458e9ea3151d5d624b5f586294e724beec3a2",
      "parents": [
        "bf305c0a8fd0d2f8c8632fa13e919e458a9c8e98"
      ],
      "author": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Fri May 29 06:42:15 2026 +0800"
      },
      "committer": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Fri May 29 06:42:15 2026 +0800"
      },
      "message": "add license and .asf.yaml\n"
    },
    {
      "commit": "bf305c0a8fd0d2f8c8632fa13e919e458a9c8e98",
      "tree": "24627319661aed8a8a528d7da1d74d6894fa39f9",
      "parents": [],
      "author": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Fri May 29 06:11:47 2026 +0800"
      },
      "committer": {
        "name": "Mingyu Chen (Rayner)",
        "email": "yunyou@selectdb.com",
        "time": "Fri May 29 06:11:47 2026 +0800"
      },
      "message": "Initial: Apache Doris agent skills (shared kernel)\n\nBrand-neutral doris-best-practices and doris-architecture-advisor skills,\nextracted from velodb-agent-skills with 5 placeholder tokens ({{CLI}},\n{{PRODUCT_NAME}}, {{CLOUD_PRODUCT_NAME}}, {{CLOUD_OPS_SKILL}},\n{{CLI_PATH_ENV}}) for brand repos to render at install time.\n\nCo-Authored-By: tomz-alt \u003cheisenzhang996@gmail.com\u003e\n"
    }
  ]
}
