Agentic CLI 與 npm Trusted Publishing 操作提示詞 my-agent-cli、my-agent、your-github-account 都是示意名稱,請替換成自己的資料。 正式發佈前,須由帳號擁有者完成必要的登入與 2FA。 ===== 提示詞 1 ===== 請在目前工作目錄建立 my-agent-cli 子資料夾,實作一個給 Agent 使用的 Node.js CLI。 請先閱讀需求及相關 API 的官方文件,列出功能、輸入與輸出契約。 需求: - npm 套件名稱為 my-agent-cli,命令名稱為 my-agent。 - 支援以 --input 指定輸入檔案,也能從 STDIN 接收內容。 - 支援 --format json,讓 Agent 能穩定解析結果。 - 結果寫入 STDOUT;進度與錯誤寫入 STDERR。 - 以明確的退出碼區分成功、參數錯誤與執行失敗。 - 寫入檔案或呼叫遠端服務的操作,提供不產生副作用的 --dry-run。 - 提供 --help、--version、Makefile 與 README。 - 加入參數、STDIN、錯誤處理及核心功能的自動測試。 請實際執行測試、檢查 npm 封裝,並從封裝安裝後驗證 CLI。 請建立獨立 Git 儲存庫,每個完成階段使用詳細繁體中文 commit 記錄。 涉及外部服務的功能,請區分離線測試與真實服務驗證,不要混為一談。 這一步先完成本機專案,不要先發佈到 npm。 ===== 提示詞 2 ===== 請驗證 npm 封裝: 1. 執行 npm pack --dry-run,列出將發佈的檔案。 2. 確認沒有 .env、API 金鑰、node_modules、測試暫存資料。 3. 實際產生 tgz,安裝到獨立暫存目錄。 4. 使用安裝後的 my-agent 執行 --version、--help 與 --dry-run。 5. 確認 --version 讀的是封裝內的 package.json,不是寫死在程式裡。 ===== 提示詞 3 ===== 請先確認 my-agent-cli 在 npm 的名稱狀態與目前登入帳號。 準備 0.0.0 的最小套件,清楚標示這個版本不含可執行 CLI。 保留根目錄已完成的實作,只發佈 release/placeholder/。 先檢查 tarball 內容,再發佈;需要登入或 2FA 時讓我在瀏覽器完成。 ===== 提示詞 4 ===== 請將這個專案發佈到我的公開 GitHub 儲存庫: your-github-account/my-agent-cli 建立以下 CI/CD: - PR 對 main 執行測試與封裝檢查,不發布套件。 - 測試 Node.js 22 與 24,作業系統包含 Linux、macOS、Windows。 - 所有測試通過後才允許發布。 - npm 發布 workflow 檔名固定為 publish.yml。 - 使用 GitHub-hosted runner 與名為 npm 的 GitHub environment。 - 使用 OIDC Trusted Publishing,不設定 NPM_TOKEN 或 NODE_AUTH_TOKEN。 - workflow_dispatch 可以手動重跑。 這次採用的發布規則:每次 main push 都發布新的穩定版本, 包含文件變更;第一個完整版本是 0.1.0,之後自動遞增 patch。 請不要把 CI 產生的版本更新再 commit 回 main。 相同 commit 已發布時,重跑必須跳過,不能重複發布。 ===== 提示詞 5 ===== 請使用瀏覽器,開啟 my-agent-cli 的 npm Settings。 新增 GitHub Actions Trusted Publisher,設定為: Organization or user: your-github-account Repository: my-agent-cli Workflow filename: publish.yml Environment name: npm Allowed actions: 允許 npm publish 請實際完成儲存並核對畫面上的設定。 如果出現登入、2FA 或需要我操作的瀏覽器認證, 停在該畫面交由我完成;完成後請繼續,不要把它當成設定已成功。 ===== 提示詞 6 ===== 請逐項驗證,不要把不同階段混成一句「已完成」: 1. Trusted Publisher 的設定已儲存,欄位與 GitHub 相符。 2. GitHub Actions 的測試工作全部通過。 3. 發佈 job 使用 OIDC 成功,不需要人工 npm login 或寫入 token。 4. npm registry 能查到指定版本,latest 指向預期版本。 5. registry 的 gitHead 對應本次發佈 commit。 6. tarball 能下載,且可找到 provenance 資訊。 7. 用指定版本安裝後,實際執行 CLI 的 --version 與 --dry-run。 如果 npm 仍在處理,請回報「發布請求已接受,尚未驗證可下載」, 不要重複發布同一版,也不要改用另一個版本掩蓋尚未查明的問題。