Kyoto.rb Meetup OSS Gate(2026-08-29開催、初心者向けOSS貢献体験ワークショップ)に参加するにあたり、Notionの過去メモを起点に「興味がありそう・実体験があるOSS」を洗い出した。
hash_token_secretsはオプトイン)という仕様に気づいた実績ありMCP::Tool DSLやcontent type実装を読み込んだ実績ありlockable/trackableマイグレーション要件の詰まりを把握済みtypeVersion: 2.7でworkflow activate時にCannot read properties of undefined (reading 'execute')エラーになる不具合を実際に踏んで確認(2.4なら問題なし)$fromAIが空文字を返すとフィールドがクリアされる懸念(未検証)forcedotcom/cliに集約。MCP関連issueを2件確認
--assets nullでTypeError → 報告者本人がPR #472で対応中mcp update --labelが保存されない → 生REST PUTでも再現するためプラットフォーム側バグの可能性が高いlightning/modalを再実装している矛盾fetching-salesforce-docsスキルが記事本文を取得できていない不具合src/commands/project/retrieve/start.ts(v4.1.2)を読み、sf project retrieve startの内部構造を確認した。
run()はCLIのオーケストレーション層で、実際のMetadata API呼び出しは@salesforce/source-deploy-retrieve(SDR)に委譲されているComponentSet.retrieve() → MetadataApiRetrieve.start()(MetadataTransfer基底クラスのテンプレートメソッドパターンでpre()/checkStatus()/post()をディスパッチ)→ connection.metadata.retrieve() / checkRetrieveStatus() でSalesforce Metadata API(SOAP)を呼んでいることを、forcedotcom/[email protected]のsrc/client/metadataApiRetrieve.ts・metadataTransfer.tsで特定したsequenceDiagram
participant Run as start.ts run()
participant CS as ComponentSet
participant MAR as MetadataApiRetrieve
participant MT as MetadataTransfer(基底)
participant Conn as connection.metadata (jsforce/SOAP)
Run->>CS: retrieve(retrieveOpts)
CS->>MAR: new MetadataApiRetrieve(options)
CS->>MAR: start()
Note over MAR,MT: start()はMetadataTransferから継承
MAR->>MT: (継承) start()
MT->>MAR: this.pre()
MAR->>Conn: metadata.retrieve(requestBody)
Note right of Conn: SOAP retrieve() 呼び出し
Conn-->>MAR: AsyncResult(id)
MAR-->>Run: mdapiRetrieve を返す
Run->>MT: pollStatus()
loop 完了まで
MT->>MAR: this.checkStatus()
MAR->>Conn: metadata.checkRetrieveStatus(id)
Note right of Conn: SOAP ポーリング
Conn-->>MAR: MetadataApiRetrieveStatus
end
MT->>MAR: this.post(status)
MAR-->>MT: RetrieveResult
MT-->>Run: retrieveResult