Files
claude-code-conduit/claude-info/contributing.md
mikael-lovqvists-claude-agent 25891ece7e Add Google Calendar integration and Claude docs
- New server/google_calendar.mjs wrapping googleapis v3 with auto token refresh
- Four new actions: calendar-list-events (auto-accept), calendar-create/update/delete-event (queue)
- bin/ccc-gcal-auth.mjs one-time OAuth2 consent flow helper
- config.example.json updated with google_calendar block
- server/config.mjs, index.mjs wired up following the same pattern as SMTP/mailer
- Bump version to 1.2.0
- Add CLAUDE.md and claude-info/ with architecture reference, feature plans, and contributing checklist

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 15:33:36 +00:00

2.2 KiB

Contributing checklist

Use this when adding any non-trivial feature to CCC. Go through every section — skipping docs or config is a common mistake.


Adding a new action (simple — no new service)

  • Add the action definition to server/actions.mjs
  • Update the actions table in README.md
  • If the action has special behavior, add a note under the table
  • Update claude-info/architecture.md if ctx shape changes

Adding a new injectable service (e.g. a new API integration)

Code

  • Create server/<service>.mjs with a factory function create_<service>(cfg)
  • Extend server/config.mjs to read and return the new config block (resolve paths relative to config dir)
  • Import and instantiate in server/index.mjs; handle missing config gracefully (warn, set to null)
  • Add the service to the make_ctx() return object in index.mjs
  • Add actions to server/actions.mjs; guard with if (!ctx.<service>) throw new Error('<service> not configured')
  • If setup requires a one-time manual step (OAuth, keygen, etc.) add a bin script in bin/
  • Add new dependencies to package.json and add bin scripts to the bin map

Config

  • Add the new config block to config.example.json

Documentation

  • Update README.md:
    • Add new actions to the actions table
    • Add a setup section explaining prerequisites and one-time steps
    • Update the ctx comment in "Adding actions" if ctx changed
  • Update claude-info/architecture.md:
    • Add the new service to the ctx shape block
    • Note any new files in the file layout
  • Update or add a plan file in claude-info/ — mark status as implemented
  • Update CLAUDE.md — mark the plan entry as done

Git

  • git status — read every line before staging
  • Stage files explicitly by name (never git add -A or git add .)
  • Bump version in package.json if this is a meaningful release
  • Commit with a clear message describing what was added
  • Check git identity is set correctly for this repo (git config user.name)

After commit

  • Tell the user to run npm install if new dependencies were added
  • Tell the user about any one-time setup steps required before the feature works