Chronos (Second-Brain)
Vault: second_brain Path: Chronos
index.md
Chronos
Chronos is a Claude Code plugin bundling two skills: gws (Google Workspace CLI mechanics — Gmail, Drive, Docs, Sheets, Slides, Calendar CRUD) and meeting-scheduler (contact resolution, cross-timezone freebusy, slot-ranking, event booking — built on top of gws's calendar commands). Lives in the public GitHub repo arijitchowdhury80/arijit-skills, under plugins/chronos/.
Status
Version 1.0.2, on open PR (#1), not yet merged to main. Installed locally via the real claude plugin CLI (marketplace-add + install, scope user), currently pointed at the local branch checkout rather than main since the PR hasn't landed yet.
What's been verified, and how (not asserted — tested)
- Real Python test suite, no mocking of the actual logic under test: 59 passed / 9 skipped on a plain
pytestrun (integration tests requiring livegwsauth correctly skip by default), 68 passed with--run-integration. - Fresh third-party install, actually simulated: a fake user ("Taylor Fake," London, a fictional company domain) with
HOMEpointed at an isolated temp directory and zero files shared with this machine — owner resolution and named-contact resolution both correct against that fake data. Proves the plugin doesn't secretly depend on anything of Arijit's. - Plugin update pipeline, tested live, not assumed: bumped 1.0.0 → 1.0.1 → 1.0.2 via
claude plugin updatefor real, twice, and inspected the result each time rather than trusting the CLI's success message. - No duplicate skill registration: confirmed the old loose
~/.claude/skills/gwsand~/.claude/skills/meeting-schedulerare fully retired (moved to~/AI-Development-OLD/Scheduler/_deprecated-local-skill-backups/, also mirrored to the Dropbox copy) — only the plugin-installed copies exist now.
Two real bugs found by testing, not by inspection — both root-caused, not patched
- Live OAuth secret hardcoded in plaintext. The original
gwsskill.md had a real Google OAuth client ID + secret inline, about to be copied into this public repo. Root-cause fix: moved to~/.config/gws/.env(mode 600, gitignored, never committed), skill now sources it. - Plugin updates silently destroy local config.
config/team.jsonwas originally placed inside the plugin's own install directory.claude plugin updatereplaces the entire installed payload on every version bump — so the real team directory (Sajid, Debanshi, Piyush, real timezones) would have been wiped on the very next update, with no warning. Caught by actually running the update, not by reading the code. Root-cause fix:resolve_contact.py'sCONFIG_PATHnow points at~/.config/chronos/team.json, outside any plugin-versioned directory — same pattern as thegws.envfix.
What a third party actually has to do to use this
claude plugin marketplace add arijitchowdhury80/arijit-skills(public, no auth to read)claude plugin install chronos@arijit-skills- Register their own Google Cloud OAuth client, put it in their own
~/.config/gws/.env(inherent to OAuth — can't be shared, not a plugin limitation) - Copy
project/config/team.json.example→~/.config/chronos/team.json, mark themselves"owner": true - From there: natural language in their own Claude session — no special invocation syntax needed, the skill
descriptionfields do the matching (chronos:gws,chronos:meeting-schedulerif explicit invocation is ever needed)
Invocation architecture (a real distinction that came up)
A Claude Code skill is a markdown file — it has no life outside an LLM session reading and following it. It cannot be called by an external app/dashboard directly, no matter how it's packaged. Two coherent ways an external system can use this:
- (a) The external system's own backend runs a Claude Agent SDK / Claude Code session with this plugin installed, and that Claude instance invokes the skill via natural language — same mechanism as this session. This is Arijit's actual intended architecture (AI-OS/dashboard's backend is itself Claude-driven).
- (b) Wrap the underlying deterministic scripts (resolve_contact.py, find_slots.py, render_options.py, gws CLI — all already tested, zero LLM involved) in a real API service, for cases with no Claude in the loop at all.
Not yet built, not yet asked for: a formal trigger-precision eval (skill-creator's eval tooling) for the two skills' natural-language matching — the mechanism is proven to work generally in this environment, but hasn't been benchmarked specifically for these two.
Timeline (append-only, cited)
- 2026-07-07 · Built and installed Chronos. See
log.mdthis date for the full sequence (Harris/Adobe email drafting → meeting-scheduler skill discovery → path/credential bugs found and fixed → composite plugin design decided (name: Chronos) → real plugin install/update/portability testing → AI-Development-OLD folder cleanup as a related but separate side-thread). Memory:feedback_no_secrets_in_skill_files,feedback_gws_reply_all_cc_bug,feedback_gws_attach_cwd_restriction,feedback_verify_scheduling_and_contacts,feedback_shared_repo_concurrent_sessions. PR: arijit-skills#1 (open, not merged).