266 Commits
Author SHA1 Message Date
Clark Cant 823b0a14d3 Merge pull request #506 from HEOJUNFO/fix/threejs-deprecated-apis
fix(threejs): replace deprecated Clock and PCFSoftShadowMap in r185 guidance
2026-09-26 20:32:23 +07:00
heojunfoandClaude Opus 5.5 6c69cb5058 fix(threejs): replace deprecated Clock and PCFSoftShadowMap in r185 guidance
The Three.js stack claims `threejs 0.185.1` but several rows still
recommend APIs that 0.185.1 deprecates and warns about at runtime:

- THREE.Clock (deprecated since r183) -> THREE.Timer with
  timer.update(timestamp) once per frame, getDelta()/getElapsed(),
  and timer.connect(document) to avoid a huge delta after a hidden tab.
  Rows 13, 31, 34, 45. Row 45 also stops calling getElapsedTime()
  per vertex (Clock.getElapsedTime() calls getDelta() internally).
- THREE.PCFSoftShadowMap (deprecated since r182, WebGLShadowMap warns
  and falls back to PCFShadowMap) -> PCFShadowMap, with shadow.radius /
  VSMShadowMap noted for softer edges. Rows 22, 23.
- GLTFLoader imported from three/examples/jsm -> three/addons, matching
  the rest of the file. Row 52.

Bump Verified At on touched rows, extend the freshness test's
forbidden-token list (three.clock, clock.getdelta,
clock.getelapsedtime, pcfsoftshadowmap, three/examples/jsm/) and add a
positive Timer lookup, refresh the relevance runtime fingerprint and
baseline, and re-sync mirrored assets.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 22:16:56 +09:00
DmsoandDmso d62fe62f88 feat: add ZCode platform support (#504)
Add ZCode as a first-class install target so the skill can be installed
with `uipro init --ai zcode` (workspace) or `uipro init --ai zcode --global`
(~/.zcode/skills/), and removed via `uipro uninstall` auto-detection.

- new platform config src/ui-ux-pro-max/templates/platforms/zcode.json
  (synced to cli/assets via sync:assets)
- register 'zcode' in AIType union, AI_TYPES, AI_FOLDERS, AI_TO_PLATFORM
- detect .zcode workspace directories and describe the platform in CLI prompts
- cover zcode in the dry-run and template-script-paths e2e specs
- document ZCode in README install/usage sections

Co-authored-by: Dmso <22094486+dmsobtl@users.noreply.github.com>
2026-09-26 17:00:18 +07:00
Ravikoti Deekshith dcc40ff513 docs: explain Claude Code output token limit (#503)
Squash-merged by github-maintain cron after maintain review/approval (2026-09-21). Closes #25.
2026-09-21 20:01:09 +07:00
Ray TienandRay 0d2b646cb6 feat(nuxt-ui): refresh guidance for v4.11 (#502)
Reverify the full stack catalog against Nuxt UI 4.11.1 and correct stale API examples. Add Splitter, ProgressGroup, motion, Vite detection, and CommandPalette security guidance.

Co-authored-by: Ray <ray.tien@cloudeep.com.tw>
2026-09-21 12:28:06 +07:00
Ray Tien f1c725fd2f feat(react): add React 19 guidelines to stack data (#344)
Squash-merged by github-maintain cron after maintainer approval (review 2026-06-20 by @mrgoonie) and conflict resolution (rebase to head 4bd45ba5, all checks green).
2026-09-21 10:28:15 +07:00
Ravikoti Deekshith de5f12b400 fix: protect existing Tailwind and token configurations (#501)
Squash-merged by github-maintain cron after maintainer approval (review 2026-09-18) and follow-up gap-closing commit 83ad973. Closes #496.
2026-09-19 07:58:38 +07:00
notbuckiandClaude Fable 5.1 15de38fb70 fix(design): make workflows self-contained, add bundled-skill contract (#498)
* fix(design): make workflows self-contained, add bundled-skill contract (#474 finding 2)

The design skill's banner and social-photos workflows named skills the plugin
does not ship (frontend-design, ai-artist, ai-multimodal, chrome-devtools,
project-management, assets-organizing) and claudekit command namespaces
(/ckm:brand, /ck:ui-ux-pro-max), so those steps fail or force the agent to
improvise under a plugin or CLI install. Rewrite them after the pattern of
#473: bundled skills stay referenced by name, optional tooling becomes an
optional runtime capability, unbundled steps are implemented inline or
dropped. The same references sat in references/social-photos-design.md, so
the fix covers the skill directory, not just SKILL.md; the CLI copy is synced.

check-asset-sync.yml gains a bundled-skill contract over both skill trees:
no /ck: or /ckm: namespace, every "`name` skill" reference must be a
directory under .claude/skills, and none of the claudekit-only names above
in any spelling.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* fix(design): address review - list-aware skill grep, case-insensitive denylist, banner intro, report naming

- contract grep 2 walks comma/and/or lists so every member is checked, not
  only the last one, and accepts the sub-skill and bold forms; grep 3 matches
  case-insensitively; the step comment states what is not covered
- banner intro no longer claims "no sibling skills" while step 2 names the
  bundled ui-ux-pro-max skill
- social-photos report name stated inline instead of "naming pattern from
  session hooks" (a claudekit convention nothing in the bundle provides);
  "persistent" dropped from the task-list step; device-scale note scoped to
  tools that support it

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* fix(ci): match wrapped skill lists - read each file as one record in the bundled-skill contract

A Markdown list wrapped over two lines ("`playwright-mcp`,\n`brand`, and
`ui-ux-pro-max` skills") passed the line-oriented allowlist grep. Read the
file as one record (-z, separators as \s+) so wrapped lists are still lists;
a hit now names the file and the name instead of the line. grep's own exit
status is taken inside the substitution so an unreadable file still fails the
step under plain bash -e, pipefail or not.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 16:29:29 +07:00
Clark Cant 7643fd1501 fix(brand): apply #497 to the source copy so check:assets passes again (#499)
fix(brand): apply #497 to the source copy so check:assets passes again
2026-09-15 16:00:41 +07:00
notbuckiandClaude Fable 5.1 975cba327e fix(brand): apply #497 to the source copy so check:assets passes again
#497 patched cli/assets/skills/brand/scripts/sync-brand-to-tokens.cjs and its
test, but sync-assets.mjs mirrors .claude/skills/ into cli/assets/, so the
source copy still carried the old adjustBrightness and check:assets reported
two stale asset files on main. That check is the first step of both CI
workflows, so every PR since then stopped there. Mirror the same two files
into the source copy; the diff is byte-identical to #497's.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 10:54:29 +02:00
nadiiasoshenko-netizenandClaude Sonnet 5 d8ce090f82 fix(brand): stop adjustBrightness collapsing dark color shades to black (#497)
adjustBrightness() added/subtracted a flat 255*percent to every RGB
channel. For a dark base color (channels already close to 0), darkening
by -0.3/-0.45/-0.6 clamped every channel to 0, so shades 700, 800, and
900 all came back as the identical, useless #000000 instead of a graded
dark scale -- reproducible with any sufficiently dark brand primary
(e.g. #4A3228), not just an edge case.

Blend each channel proportionally toward white (percent > 0) or black
(percent < 0) instead, so the shift scales with how much headroom the
channel actually has.

Adds a regression test that syncs a dark brand color and asserts the
700/800/900 shades stay distinct and non-black.


Claude-Session: https://claude.ai/code/session_01MmtTPnoqMrjjhKjod9VTzr

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-15 07:00:09 +07:00
Duy /zuey/ 7f69fed6a2 Enhance README with 3Dviz Pro Max skill details
Updated the README to include a new section for the 3Dviz Pro Max skill with improved formatting and links.
2026-09-10 13:53:40 +07:00
Duy /zuey/ 9cf21aef9b Update image sources and website link in README 2026-09-10 13:41:50 +07:00
Duy /zuey/ e7f7850dc7 Enhance README with 3Dviz Pro Max details
Updated the README to include a link to the 3Dviz Pro Max skill and corrected image links.
2026-09-10 13:36:17 +07:00
Duy /zuey/ 53b8e6913e Add 3Dviz Pro Max section to README
Added a section for the new skill '3Dviz Pro Max' with description and visuals.
2026-09-10 13:34:22 +07:00
Shxiao 4aad0584d9 feat(cli): add --dry-run to init to preview install actions without writing (#489)
feat(cli): add --dry-run to init to preview install actions without writing (#489)

Closes #291

- Adds resolveInstallPaths helper shared by real install and dry-run preview
- New planPlatformInstallActions / planAllPlatformInstallActions for read-only preview
- 3 e2e tests verify output content, no-write guarantee, and all-platforms coverage
- README docs included

*Approved and merged by github-maintain cron*
2026-09-06 18:29:23 +07:00
Shxiao ce1586f774 fix(manifests): correct style and UX guideline counts in skill.json and plugin manifests (#488) 2026-09-06 17:28:42 +07:00
Shxiao 314307f156 fix(search): warn that --stack is ignored in --design-system mode (#484) (#487)
Merged by github-maintain automation. Closes #484 Finding 1 (priority-1 quick win: silent --stack flag drop in --design-system mode).
2026-09-06 11:31:08 +07:00
Shxiao b2ac9b2aa1 docs(cli): correct cli/README.md license from CC-BY-NC-4.0 to MIT (#486) 2026-09-06 10:59:28 +07:00
Sat0h172943 f3ac195224 docs: remove unimplemented openclaw install command (#483)
The README instructed users to run `uipro init --ai openclaw`, but
"openclaw" is not a supported AIType in the CLI (cli/src/types/index.ts),
so the command fails.
2026-09-03 21:13:38 +07:00
91c193ac05 fix(skills): skill-relative paths below SKILL.md, widen path contract (#482)
Refs #474 (finding 1 follow-up to #476, which rewrote design/SKILL.md
and added a contract that grepped only */SKILL.md; the same defect one
level down survived).

- 29 home-rooted paths (~/.claude/skills/design/scripts/...) in
  design/references/{cip,icon,logo}-design.md -> scripts/... (27 at
  review time, two more added by #470); the printed
  hint in design/scripts/cip/generate.py now derives the absolute path
  from __file__
- 19 project-rooted invocations (.claude/skills/<skill>/scripts/...) in
  brand/, slides/ and design/ references -> scripts/... (own skill) or
  ../<skill>/scripts/... (sibling sub-skill; sub-skills are installed
  side by side in every layout)
- brand/scripts/sync-brand-to-tokens.cjs resolved its sibling script from
  process.cwd(), silently skipping CSS regeneration under plugin and
  --global installs; now resolved from __dirname, with a warning when
  the sibling skill is missing; regression test asserts the regeneration
- brand/scripts/extract-colors.cjs: tool-neutral hint instead of a
  project-rooted path into a skill this plugin does not ship
- "Script Paths" section in the five sub-skills that invoke scripts:
  script path from the skill directory, working directory at the
  project root
- new test_skill_script_paths.py (src, mirrored to both scripts/tests
  copies): every python/node/bash invocation in every shipped skill
  markdown must be skill-relative and name a file that ships
- check-asset-sync.yml: contract covers every file under both skill
  trees and home-/project-/variable-rooted forms; ${CLAUDE_PLUGIN_ROOT}
  allowed only in the plugin-only core SKILL.md; LC_ALL=C + -I for the tracked
  .coverage binary; grep errors fail instead of passing; push filter
  includes the workflow and sync-assets.mjs
- CLI copy regenerated via sync-assets.mjs

Co-authored-by: notbucki <daniel@buckenmaier.xyz>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 15:14:02 +07:00
Duy /zuey/ d9062e3bc2 Update link to AgentKit in README 2026-09-03 14:25:13 +07:00
Clark Cant 08b2e54ce0 Merge pull request #470 from Anil-matcha/add-muapi-logo-provider
feat(design): add opt-in MuAPI logo provider
2026-09-03 10:45:54 +07:00
speedy75015-cryptoandClaude Opus 5 58c220ff9d docs: document the project-slug level in the design-system tree (#479)
--persist writes design-system/<project-slug>/MASTER.md, but all four
READMEs document design-system/MASTER.md, omitting the per-project
folder. Following the README leads readers to look for files that are
never created there.

The code is unambiguous (design_system.py:1020):

    design_system_dir = base_dir / "design-system" / project_slug

and search.py's own --help already documents it correctly, so this is a
documentation gap rather than a behaviour question.

The slug level is not incidental: without it, two projects persisted
into the same directory would overwrite each other's MASTER.md.

Updated in README.md, README.ko.md, README.vi.md and README.zh.md:
the folder tree, the hierarchical-retrieval steps and the context-aware
retrieval prompt. Uses the concrete slug "myapp" where the surrounding
example runs -p "MyApp", and [project-slug] where the text is generic.


Claude-Session: https://claude.ai/code/session_015UidECV1wVBD8SW6Abuj71

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-02 17:45:32 +07:00
speedy75015-cryptoandClaude Opus 5 e2effd5775 fix(data): make catalog snapshot hashes line-ending independent (#478)
* fix(data): regenerate stale catalog-summary snapshot hashes

catalog-summary.json was not regenerated after google-fonts.csv,
google-font-licenses.json, icons.csv and phosphor-icons-upstream.json
changed, so `npm --prefix cli run verify:data` fails on a clean
checkout of main:

  validate:semantic          4 stale snapshot errors
  validate:catalog-summary   "catalog-summary.json is stale"
  test:python                1 failure / 153
  check:assets               2 files out of sync

Regenerated with the existing --verified-at 2026-08-26: only the four
sha256 fields change. The date is a human attestation that the font
catalog was checked against the upstream google/fonts repository, so it
is deliberately left untouched -- no such verification was performed
here.

verify:data now exits 0.

Note: prepublishOnly runs sync:assets before verify:data, which
regenerates the snapshot at publish time. That is why released packages
are unaffected and the drift stayed invisible on main.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015UidECV1wVBD8SW6Abuj71

* fix(data): make catalog snapshot hashes line-ending independent

Root cause of the stale snapshot restored in the previous commit.

bd19ab9 (#462) regenerated catalog-summary.json from a CRLF checkout.
Every recorded sha256 was the CRLF hash of its source file, so the
check failed on every LF platform. The four committed values are
exactly sha256(crlf_bytes):

  google-fonts.csv              committed d03194d2…  = CRLF hash
  google-font-licenses.json     committed 7c35e410…  = CRLF hash
  icons.csv                     committed 272ccf0e…  = CRLF hash
  phosphor-icons-upstream.json  committed 81c37fb3…  = CRLF hash

Two conditions had to combine: the digest hashed raw bytes, and no
.gitattributes pinned these files to LF, so Windows checkouts get CRLF
by default. Restoring the hashes alone would let the next contributor
on Windows reproduce the same commit.

Three changes:

- normalize line endings in generate-catalog-summary.py's digest(), so
  the snapshot no longer depends on the checkout
- apply the same normalization in validate_data.py, which independently
  recomputes the hashes and has to agree with the generator
- add .gitattributes pinning src/ui-ux-pro-max/data/*.{csv,json} to LF,
  so a Windows checkout matches the committed bytes in the first place

sync-assets.mjs already normalizes to LF, so this only extends an
existing project convention to the two places that were missing it.

Adds test_catalog_summary_line_endings.py: LF and CRLF inputs must
digest identically, the committed snapshot must match the normalized
sources, and a simulated CRLF checkout must still produce the recorded
hashes. The third case fails against the pre-fix digest.

verify:data exits 0; the Python suite goes from 153 to 156 tests.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015UidECV1wVBD8SW6Abuj71

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-02 14:14:59 +07:00
Clark Cant 40d8b6facf Merge pull request #480 from Yoruxyv/docs/indonesian-readme
docs: add Indonesian README
2026-09-02 13:44:47 +07:00
Dendroculus c21a7b095f docs: add Indonesian README 2026-09-02 10:38:23 +07:00
Anil-matcha 26f79bdfb6 fix(design): use MuAPI result URL from creation response 2026-09-01 15:13:29 +05:30
Anil-matcha 36c879d974 Merge current upstream main 2026-09-01 15:02:16 +05:30
djatadougbewilfried-starandClaude Opus 5 f23267105a fix(design-system): make the skill work outside a vendored checkout and on Windows (#460)
* fix(design-system): resolve project root from cwd, not __file__

fetch-background.py and html-token-validator.py derived PROJECT_ROOT with five
.parent hops, which only reaches the project root when the skill is vendored at
<project>/.claude/skills/design-system/scripts/. Installed at user level
(~/.claude/skills/) or as a plugin, PROJECT_ROOT pointed outside the project, so
both scripts silently ran against no tokens at all.

Resolve from the working directory instead, matching generate-tokens.cjs and
validate-tokens.cjs which already use process.cwd(). DESIGN_SYSTEM_PROJECT_ROOT
overrides it when the project root cannot be inferred.

slide_search_core.py is left alone: it resolves skill-relative data, which is
the correct use of __file__.

Refs #459

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* fix(design-system): stop findProjectRoot from hanging on Windows

embed-tokens.cjs walked up the tree with `while (dir !== '/')`. On Windows the
filesystem root is 'C:\', so that condition is never true, and path.dirname('C:\')
returns 'C:\' unchanged -- the loop spins forever at 100% CPU instead of erroring
out, whenever assets/design-tokens.css is not found above the cwd.

Stop when dirname stops changing, which terminates on every platform.

Refs #459

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* fix(design-system): force UTF-8 stdout so emoji output works on cp1252 consoles

search-slides.py --context and html-token-validator.py print emoji. On a Windows
console the default encoding is cp1252, so the first emoji raises
UnicodeEncodeError and the command dies with a traceback instead of output --
this takes out --context, the entry point of the contextual slide system.

Reuse the guard already shipped in src/ui-ux-pro-max/scripts/search.py.

Refs #459

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* test(design-system): decode subprocess output as UTF-8 in validate-tokens tests

test_validate_tokens.py drives validate-tokens.cjs through subprocess.run with
text=True but no explicit encoding, so Python decodes the pipe with the locale
codec. On Windows (cp1252) the validator's emoji output raises UnicodeDecodeError
inside the reader thread, result.stdout comes back as None, and the assertion
fails with a confusing `TypeError: argument of type 'NoneType' is not a
container` -- this suite cannot pass on Windows at all today.

Pin the pipe and the fixture write to UTF-8. The validator itself was never at
fault: run by hand it flags the hardcoded hex correctly.

Note: brand/scripts/tests/test_sync_brand_to_tokens.py uses the same
text=True-without-encoding pattern and is one emoji away from failing the same
way. Left alone to keep this PR scoped to design-system.

Refs #459

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-01 01:42:36 +07:00
nhatlong90andkhietan bd19ab9070 fix(cli): support cross-platform python execution on windows (#462)
- replaced hardcoded python3 in npm scripts with a node wrapper to support windows natively without breaking unix systems

- updated stale catalog-summary.json snapshot

Co-authored-by: khietan <118370929+khietan@users.noreply.github.com>
2026-09-01 01:13:07 +07:00
notbuckiandClaude Fable 5 c7d413e7c3 fix(design): use skill-relative script paths + CI path contract (#474 finding 1) (#476)
Replace all 22 hard-coded ~/.claude/skills/design/scripts/... invocations
in the design skill with skill-relative paths (python3 scripts/...), the
same convention the brand and design-system sub-skills already use. The
user-level path only works in one install context: under a marketplace/
plugin install the skill lives in the plugin cache, and under project-level
CLI installs there is no ~/.claude/skills/design/ either.

Edited .claude/skills/design/SKILL.md (source of truth) and regenerated
the CLI copy with cli/scripts/sync-assets.mjs; --check passes.

Adds a path-contract step to check-asset-sync.yml that fails if any
SKILL.md (either copy) reintroduces a ~/.claude/skills/ invocation, and
widens the workflow's path filters to .claude/skills/** so the contract
actually fires on sub-skill edits.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-09-01 00:21:02 +07:00
Mortal d95bdf5669 fix(banner): make workflow self-contained (#473)
Remove references to tools and sibling skills that are not bundled with banner-design. Add plugin, asset, and Claude CLI installation path-contract coverage.
2026-08-31 23:44:38 +07:00
Clark Cant d279284fb1 Merge pull request #471 from Yongveloper/docs/korean-readme
docs: add Korean README
2026-08-31 12:11:48 +07:00
yongveloper e9bd28180f fix(docs): avoid Hangul diagram misalignment
GitHub renders Hangul with fallback font metrics that differ from
ASCII spacing. Replace right-bordered diagrams with borderless layouts
so alignment no longer depends on browser-specific font rendering.
2026-08-31 01:12:55 +09:00
yongveloper 5f2b160e3b docs: add Korean README 2026-08-31 01:00:40 +09:00
Anil-matcha e7e873dada fix(design): document MuAPI model contracts 2026-08-30 07:53:09 +05:30
Anil-matcha 0720614e6e fix(design): preserve existing logo provider docs 2026-08-29 11:46:39 +05:30
Anil-matcha dfe8765f10 feat(design): add opt-in MuAPI logo provider 2026-08-29 11:16:47 +05:30
nb213andbinyangzhu000-sudo 8bd29e7754 feat(design): add Atlas Cloud logo provider (#447)
Signed-off-by: binyangzhu000-sudo <224954946+binyangzhu000-sudo@users.noreply.github.com>
Co-authored-by: binyangzhu000-sudo <224954946+binyangzhu000-sudo@users.noreply.github.com>
2026-08-27 16:15:36 +07:00
Clark Cant e4f4547369 Merge pull request #464 from loulanyue/fix/detect-claude-plugin
fix(cli): detect .claude-plugin directory for Claude Code in detectAIType
2026-08-26 13:57:16 +07:00
loulanyue 3e6be6d538 fix(cli): detect .claude-plugin directory for Claude Code in detectAIType 2026-08-26 14:42:00 +08:00
Clark Cant e353a50876 Merge pull request #461 from djatadougbewilfried-star/fix/brand-test-encoding
test(brand): decode subprocess output as UTF-8 so the suite can pass on Windows
2026-08-25 22:27:04 +07:00
Wilfried DjataandClaude Opus 5 a8f4e7e1ec test(brand): decode subprocess output as UTF-8 and cover the error path
test_sync_brand_to_tokens.py drives sync-brand-to-tokens.cjs through
subprocess.run with text=True but no explicit encoding, so Python decodes the
pipe with the locale codec. Three of the script's messages carry emoji whose
UTF-8 bytes land on cp1252's undefined slots: 0x8F in the "no base hex found"
warning (sync-brand-to-tokens.cjs:132), 0x9D in the "brand guidelines not found"
error (:198), and 0x8F in the dry-run notice (:223). Decoding then raises inside
subprocess's reader thread, the stream comes back as None, and any assertion
against it fails with `TypeError: argument of type 'NoneType' is not a
container` -- which hides the real result behind an unrelated error.

The existing test passes today only because the bundled starter fixture happens
to take none of those three paths.

Pin the pipe to UTF-8, extracted into a shared _run helper to match the idiom in
design-system's test module, and add a regression test for the missing-guidelines
path -- the default state of any project that has not run the brand skill yet.
That test fails without the encoding fix (stderr is None) and passes with it.

Follow-up to #460

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-25 14:33:39 +00:00
Clark Cant 9f1824aa7b Merge pull request #458 from Fermilus-coder/test/droid-script-path-coverage
test(cli): add droid to script-path rendering coverage
2026-08-25 17:26:23 +07:00
Fermilus-coder e084ceb4ee test(cli): add droid to script-path rendering coverage
droid's install root (.factory) doesn't match its platform
identifier, the same mismatch pattern already covered for codex
(.agents). Extends the existing test cases rather than adding new
assertions.
2026-08-24 21:48:33 -06:00
Clark Cant c87cdc226f Merge pull request #452 from tuananh31j/main
docs: add Vietnamese README
2026-08-24 23:56:41 +07:00
Rafli Surya Wijaya 13179471f9 docs: add openclaw to AI assistant CLI initialization list in README (#456) 2026-08-24 20:55:43 +07:00
tuananh31j 2872e4cc23 docs: add Vietnamese README 2026-08-22 11:11:21 +07:00
lodderjasper99-lang bc826e2267 docs: fix outdated manual sync steps in CONTRIBUTING.md (#450)
The manual cp commands only synced cli/assets/, skipping the
.claude/skills/ui-ux-pro-max/ mirror that the sync-assets tooling
also updates. Following the doc literally left that copy stale
and would fail the "Check asset sync" CI check. Use the actual
npm run sync:assets script (as documented in CLAUDE.md) instead.
2026-08-20 18:49:06 +07:00