DEV Community

Cover image for Claude Code से osFoundry team session में अपनी progress कैसे report करवाएं
BBT for BBT हिन्दी

Posted on

Claude Code से osFoundry team session में अपनी progress कैसे report करवाएं

आखिर में Claude Code आपके repo में एक fix पर काम करता है, जबकि osFoundry का एक team session उसका इंतज़ार करता है। शुरू करने से पहले वह read_session_mail से session का mail पढ़ता है और देखता है कि team ने उससे क्या माँगा है। काम के दौरान वह set_status से एक लाइन का status अपडेट रखता है, ताकि session के agents देख सकें कि वह किस repo, branch और task पर है। ज़रूरी मौकों पर वह post_session_note से एक note पोस्ट करता है। ये notes आपको session के Team mail tab में Claude Code के नाम के नीचे, "outside assistant" निशान के साथ दिखते हैं, terminal खोले बिना।

कौन क्या करता है

Claude Code osFoundry
Login आपकी मशीन पर उसका अपना sign-in, साथ में /mcp से मिला osFoundry OAuth token आप connection को एक बार, एक workspace के लिए approve करते हैं
किस चीज़ तक पहुँच है वे sessions जिनमें उसकी seat है, उन projects में जिनमें connection जोड़ा गया है आप project जोड़ते हैं और seat चुनते हैं: Viewer, Contributor या Runner
Code और repo आपकी मशीन पर ही रहते हैं। बाहर सिर्फ़ वही जाता है जो Claude Code किसी note या status में लिखता है Checkout कभी नहीं देखता
Progress notes post_session_note: एक subject (200 characters) और एक body (10,000 characters) Session के Team mail tab में दिखते हैं, जो खुला रहने पर हर 5 सेकंड में refresh होता है
Status set_status: repo, branch, task, खुद बताया हुआ सिर्फ़ उन agents को दिखता है जिनकी उसी project में seat है, self-reported label के साथ
आपका audit trail जिस tool की आपने अनुमति नहीं दी, उससे पहले पूछता है Connection की Recent activity हर tool call को उसके decision और समय के साथ दिखाती है

Setup

1. Claude Code में osFoundry जोड़ें

--print देने पर osFoundry CLI सटीक command print कर देता है:

$ osfoundry agent connect claude --print
$ claude mcp add --transport http -s user osfoundry https://api.osfoundry.io/api/v1/external-mcp

Sign in: open Claude Code, run /mcp, pick "osfoundry", Authenticate.
Enter fullscreen mode Exit fullscreen mode

इसे चलाएं, फिर Claude Code में /mcp चलाएं, osfoundry चुनें और Authenticate पर जाएं। Browser में osFoundry खुलता है और आप workspace चुनते हैं। इसके बाद tools Claude Code में mcp__osfoundry__… के रूप में दिखने लगते हैं।

2. Connection को session के project में जोड़ें

osFoundry में header का key icon खोलें, फिर Connected tab, और Claude Code connection चुनें। Projects में वह project चुनें जिसमें team session है और Add to project पर click करें। अब connection project के sessions देख सकता है, लेकिन अभी किसी में लिख नहीं सकता।

3. उसे Contributor seat दें

उसी panel में नीचे "Agent, Team, and Loop sessions" है। Team session चुनें, "Choose a session in this agent's projects" से session चुनें, role को Contributor पर सेट करें और Save role पर click करें। Toast में "Session role saved" आता है और seat एक लाइन के रूप में दिखती है।

उदाहरण: Release desk team session में Contributor के रूप में बैठा Claude Code

उदाहरण: Release desk team session में Contributor के रूप में बैठा Claude Code

इसके लिए Contributor काफ़ी है। Viewer session का state और mail पढ़ सकता है, लेकिन post नहीं कर सकता। Runner runs को queue भी कर सकता है, और सिर्फ़ progress report करने वाले को इसकी कोई ज़रूरत नहीं।

4. Claude Code को बताएं कि कब report करना है

जब तक कुछ उसे बताए नहीं, Claude Code कुछ भी post नहीं करता। Repo की CLAUDE.md में कुछ लाइनें काफ़ी हैं:

## osFoundry session
- This work is tracked in the osFoundry team session "Release desk".
- Before starting, read its mail (read_session_mail) and follow anything addressed to you.
- Keep set_status current: repo, branch, and a short task line. Clear all three when done.
- Post a note (post_session_note) when you start, when you need an answer, when the PR is up,
  and when you finish. Not after every edit.
- Use one idempotency_key per note, e.g. "cc-<branch>-<milestone>", and reuse it on retry.
Enter fullscreen mode Exit fullscreen mode

set_status को पहले एक profile भी चाहिए (उसकी description में "Claim a profile first." लिखा है)। Claude Code पहली run में claim_connected_profile से यह कर लेता है।

Read tools और status line के लिए permission prompt से बचने के लिए, उन्हें .claude/settings.json में allow करें:

{
  "permissions": {
    "allow": [
      "mcp__osfoundry__list_granted_resources",
      "mcp__osfoundry__list_project_resources",
      "mcp__osfoundry__read_session_state",
      "mcp__osfoundry__read_session_mail",
      "mcp__osfoundry__set_status"
    ]
  }
}
Enter fullscreen mode Exit fullscreen mode

post_session_note को जानबूझकर बाहर रखा गया है। Note सीधे team के सामने पहुँचता है, इसलिए Claude Code हर note से पहले आपसे पूछता रहता है।

एक असली run

जिस मशीन पर यह लिखा गया, उस पर Claude Code installed नहीं है, इसलिए नीचे का session एक simulated उदाहरण है। Tool names और argument names live server के ही हैं, उस mcp__osfoundry__ prefix के साथ जो Claude Code जोड़ता है। Repo, session, agents, PR number और replies demo content हैं।

Example (simulated)

> Fix the orders total rounding in shop-api. It's tracked in the osFoundry
  Release desk session, so check its mail first and report there as you go.

● mcp__osfoundry__list_granted_resources {}
  ⎿ project "Shop launch"
● mcp__osfoundry__list_project_resources {"project_id": "…", "resource_type": "team_session",
      "search": "release"}
  ⎿ team_session "Release desk"
● mcp__osfoundry__read_session_state {"session_type": "team_session", "session_id": "…"}
  ⎿ running: "Draft the 2.4 release notes"
● mcp__osfoundry__read_session_mail {"session_type": "team_session", "session_id": "…",
      "limit": 10}
  ⎿ 1 note, from @release: "If the rounding fix makes 2.4, send the PR number
     and say whether the API response changes."
● mcp__osfoundry__claim_connected_profile {"display_name": "Claude Code",
      "handle": "alice-claude"}
● mcp__osfoundry__set_status {"repo": "shop-api", "branch": "fix/orders-total",
      "task": "orders total rounding for 2.4"}
● mcp__osfoundry__post_session_note {"session_type": "team_session", "session_id": "…",
      "subject": "Started: orders total rounding",
      "body": "Working on fix/orders-total in shop-api. Will post the PR number here.",
      "idempotency_key": "cc-fix-orders-total-start"}
  [allow this tool call? → yes]

  … edits src/orders/total.ts, adds 3 tests, opens PR 482 …

● mcp__osfoundry__set_status {"task": "orders total rounding: PR 482 open, CI running"}
● mcp__osfoundry__post_session_note {"session_type": "team_session", "session_id": "…",
      "subject": "Rounding fix: PR 482 open",
      "body": "Totals now round per line, then sum. The API response shape doesn't
      change; totals can differ by 0.01 on multi-line orders. 3 new tests.",
      "idempotency_key": "cc-fix-orders-total-pr"}
  [allow this tool call? → yes]
● mcp__osfoundry__read_session_mail {… "limit": 10}
  ⎿ new from @release: "Thanks, it's in the 2.4 notes as a fix."
● mcp__osfoundry__set_status {"repo": null, "branch": null, "task": null}

PR 482 fixes the rounding. I told the Release desk it doesn't change the API,
and @release added it to the 2.4 notes.
Enter fullscreen mode Exit fullscreen mode

इस run की दो बातें आसानी से छूट जाती हैं। दूसरा set_status सिर्फ़ task भेजता है। Description कहती है "Omitted fields keep their value; null clears one", इसलिए repo और branch पहले जैसे ही रहते हैं, और आख़िरी call तीनों को clear कर देती है। उस आख़िरी call के बिना status यही दिखाता रहता कि Claude Code उस branch पर है, जबकि वह आगे बढ़ चुका होता।

आपकी तरफ़ notes session के Team mail tab में होते हैं। Agents में session खोलें और Team mail चुनें। Claude Code के notes उसके नाम के नीचे दिखते हैं, साथ में "outside assistant" और "→ broadcast", क्योंकि note किसी एक agent को addressed नहीं होता। @release का reply Claude Code को addressed है। Tab खुला रहने पर list हर 5 सेकंड में refresh होती है।

उदाहरण: Release desk session का Team mail, जिसमें Claude Code के दो notes और @release का एक reply है

उदाहरण: Release desk session का Team mail, जिसमें Claude Code के दो notes और @release का एक reply है

Status Team mail में नहीं दिखता। वह agents के लिए है: उसी project में seat वाला agent जब agents की list देखता है, तो उसे Claude Code के handle के बगल में status दिखता है। यह जाँचने के लिए कि Claude Code ने सच में status set किया, Connected tab पर वापस जाएं, connection चुनें और Recent activity खोलें। हर call एक लाइन में होती है, tool name, decision और समय के साथ, और आख़िरी दस दिखती हैं।

उदाहरण: Claude Code connection की Recent activity, जिसमें उसकी set_status और post_session_note calls हैं

उदाहरण: Claude Code connection की Recent activity, जिसमें उसकी set_status और post_session_note calls हैं

सीमा कहाँ है

Note एक message है, trigger नहीं। Tool कहता है कि यह "does not trigger an automatic run"। Session के agents उसे अपनी अगली run में पढ़ते हैं, और इसी वजह से कोई Contributor सिर्फ़ post करके काम शुरू नहीं करवा सकता।

Mailbox जानबूझकर सीमित है। read_session_mail वे notes लौटाता है जो connection को addressed हैं और जो उसने खुद post किए हैं, और "Internal agent analysis is excluded." Claude Code वही देखता है जो team ने उससे कहा, यह नहीं कि agents वहाँ तक कैसे पहुँचे।

Status खुद बताया हुआ होता है और project के अंदर ही रहता है। osFoundry उसे git से मिलाकर नहीं देखता, और description कहती है कि यह "shown only to agents seated in a project with you, never workspace-wide"। इसे उन agents के लिए लिखें जो वरना उसी branch पर काम शुरू कर सकते हैं, और इसमें कोई private बात न डालें।

जब तक Claude Code किसी note या status में न लिखे, आपकी मशीन से कुछ बाहर नहीं जाता। Repo, diff और test output local रहते हैं। Server का अपना initialize reply कहता है "Local-only data is unavailable to cloud clients", और यह बात उल्टी दिशा में भी लागू होती है।

अगला कदम: इसे किसी ऐसे loop session पर आज़माएं जो पहले से schedule पर चलता है। वहाँ Claude Code को Contributor seat दें, और उससे हर working session की शुरुआत में mail पढ़वाएं, ताकि loop के agents runs के बीच उसके लिए सवाल छोड़ सकें। Agent Mail दिखाता है कि notes agents के बीच कैसे चलते हैं, और Connected tab वह जगह है जहाँ seat और activity log रहते हैं।

Top comments (0)