Fenxiang Update (passphrase-gated)
Codex alias for CI发布工程师-分项更新. Do not run unless the user message contains 分项.
Meaning
分项 means "sync core code by project":
- Windows uses
E:\WelineFramework\Framework-Officialchild site projects plusE:\公司\远程\src\weline; macOS uses/Users/weline/Project/Officialand auto-discovers child projects withbin/worweline/bin/w. The default core repository isE:\WelineFramework\DEV-workspaceon Windows and the script repo, such as/Users/weline/Project/Official/框架, on macOS. - Resolve the target branch from the passphrase:
分项defaults todev;分项 <branch>targets<branch>. - Commit and push the current core branch online to the target branch.
- Each configured site project updates its core code through
php bin/w core:update -b <branch>. - Each site commits and pushes only framework-path changes produced by the update; business paths, sensitive paths, and dirty pre-update worktrees block that site.
- After a successful site framework commit/push, run
php bin/w server:reload -n; the command detects whether WLS is running and skips when there are no workers.
Canonical paths
| Purpose | Path |
|---|---|
| Full skill body | dev/ai/skills/CI发布工程师-分项更新/SKILL.md |
| Windows PowerShell script | dev/tools/fenxiang/fenxiang-update.ps1 |
| macOS/Linux shell script | dev/tools/fenxiang/fenxiang-update-mac.sh |
| AI routing index | dev/ai/skills/_index.md |
Quick command
From E:\WelineFramework\DEV-workspace:
.\dev\tools\fenxiang\fenxiang-update.ps1
From macOS core repo /Users/weline/Project/Official/框架:
bash ./dev/tools/fenxiang/fenxiang-update-mac.sh
Equivalent explicit dev branch:
.\dev\tools\fenxiang\fenxiang-update.ps1 dev
macOS equivalent explicit dev branch:
bash ./dev/tools/fenxiang/fenxiang-update-mac.sh dev
With explicit branch and commit message:
.\dev\tools\fenxiang\fenxiang-update.ps1 master -CommitMessage "core: 修复升级 registry stale 信息清理"
Without -CommitMessage, the script uses normal git commit so the commit message reflects the actual change instead of a fixed default.
When unrelated local changes exist, restrict the commit:
.\dev\tools\fenxiang\fenxiang-update.ps1 -IncludePaths app/autoload.php,app/code/Weline/Framework/Event/Event.php
Dry run:
.\dev\tools\fenxiang\fenxiang-update.ps1 -DryRun
macOS dry run:
bash ./dev/tools/fenxiang/fenxiang-update-mac.sh --dry-run
Skip WLS reload:
.\dev\tools\fenxiang\fenxiang-update.ps1 -SkipWlsReload
Skip child-site commit or push:
.\dev\tools\fenxiang\fenxiang-update.ps1 -SkipSiteCommit
.\dev\tools\fenxiang\fenxiang-update.ps1 -SkipSitePush
Target sites
E:\WelineFramework\Framework-Official\A2AE:\WelineFramework\Framework-Official\AppE:\WelineFramework\Framework-Official\BbsE:\WelineFramework\Framework-Official\OfficialE:\WelineFramework\Framework-Official\SkillE:\WelineFramework\Framework-Official\ToolsE:\WelineFramework\Framework-Official\WeShopE:\公司\远程\src\weline
On macOS, the script scans /Users/weline/Project/Official and currently finds:
/Users/weline/Project/Official/App/Users/weline/Project/Official/Skill/Users/weline/Project/Official/摩托车/Users/weline/Project/Official/Official-Site/Users/weline/Project/Official/WeShop
The script resolves either <site>/bin/w or <site>/weline/bin/w, using platform-native path separators.
Read the canonical skill for guardrails, failure handling, and final evidence requirements.