Cost Tracking
affaan-m/ECC
Track and report Claude Code token usage, spending, and budgets from the local ECC cost-tracker metrics log.
Log implementation decisions — tracks deviations from plan and captures rationale
$ npx skills add jellydn/my-ai-tools --skill implementation-logger -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jellydn/my-ai-tools implementation-logger --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jellydn/my-ai-tools.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/implementation-logger .claude/skills/implementation-logger && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "implementation-logger" agent skill from https://github.com/jellydn/my-ai-tools/tree/main/skills/implementation-logger into .claude/skills/implementation-logger/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implementation-logger", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jellydn/my-ai-tools/tree/main/skills/implementation-loggerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jellydn/my-ai-tools --skill implementation-logger -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jellydn/my-ai-tools implementation-logger --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jellydn/my-ai-tools.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/implementation-logger .agents/skills/implementation-logger && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "implementation-logger" agent skill from https://github.com/jellydn/my-ai-tools/tree/main/skills/implementation-logger into .agents/skills/implementation-logger/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implementation-logger", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jellydn/my-ai-tools --skill implementation-logger -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jellydn/my-ai-tools implementation-logger --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jellydn/my-ai-tools.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/implementation-logger .cursor/skills/implementation-logger && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "implementation-logger" agent skill from https://github.com/jellydn/my-ai-tools/tree/main/skills/implementation-logger into .cursor/skills/implementation-logger/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implementation-logger", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jellydn/my-ai-tools.git --path skills/implementation-logger--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jellydn/my-ai-tools --skill implementation-logger -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jellydn/my-ai-tools implementation-logger --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jellydn/my-ai-tools.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/implementation-logger .gemini/skills/implementation-logger && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "implementation-logger" agent skill from https://github.com/jellydn/my-ai-tools/tree/main/skills/implementation-logger into .gemini/skills/implementation-logger/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implementation-logger", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jellydn/my-ai-tools implementation-loggerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jellydn/my-ai-tools --skill implementation-logger -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jellydn/my-ai-tools.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/implementation-logger .github/skills/implementation-logger && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "implementation-logger" agent skill from https://github.com/jellydn/my-ai-tools/tree/main/skills/implementation-logger into .github/skills/implementation-logger/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implementation-logger", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jellydn/my-ai-tools --skill implementation-logger -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jellydn/my-ai-tools implementation-logger --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jellydn/my-ai-tools.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/implementation-logger .opencode/skills/implementation-logger && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "implementation-logger" agent skill from https://github.com/jellydn/my-ai-tools/tree/main/skills/implementation-logger into .opencode/skills/implementation-logger/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implementation-logger", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
implementation-loggerLog implementation decisions — tracks deviations from plan and captures rationale
Implementation Logger is an agent skill from jellydn/my-ai-tools. Log implementation decisions — tracks deviations from plan and captures rationale
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: cline, claude, opencode, amp, codex, gemini, cursor, pi
The repository describes itself as: Comprehensive configuration management for AI coding tools - Replicate my complete setup for Claude Code, OpenCode, Amp, Li, Codex and Claude Code Switch with custom… The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 163951e. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
cline, claude, opencode, amp, codex, gemini, cursor, pi
From compatibility in the SKILL.md frontmatter.
Implementation Logger loads about 3k tokens when it runs. Until then it costs about 26 tokens; SKILL.md has 440 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jellydn/my-ai-tools at commit 163951e, republished under its MIT licence (© jellydn). 440 words, ~3,043 tokens.
.claude/skills/implementation-logger/SKILL.md (or your agent's skills folder).Use this skill during implementation when:
Tracks deviations from the original plan and decision rationale during implementation. Helps identify where your mental model (map) differed from reality (territory).
At the start of implementation, create a log file:
# Create implementation log
echo "# Implementation Log: [Feature Name]" > .implementation-log.md
echo "" >> .implementation-log.md
echo "Started: $(date)" >> .implementation-log.md
echo "" >> .implementation-log.md
echo "## Original Plan" >> .implementation-log.md
echo "[Brief summary of approach]" >> .implementation-log.md
echo "" >> .implementation-log.md
echo "## Deviations & Decisions" >> .implementation-log.mdWhenever reality differs from plan, log it:
### [Timestamp] - [Decision Point Title]
**Context**: What I encountered that wasn't in the plan
**Original Assumption**: What I thought would work
**Reality**: What I actually found
**Decision**: What I decided to do instead
**Rationale**: Why this approach is better/necessary
**Impact**: What else this might affectTrack different types of deviations:
Architectural Discoveries:
Unknown Unknowns:
Technical Constraints:
Spec Gaps:
After implementation:
expected -> observed -> decision -> verified result# Implementation Log: [Feature Name]
**Date**: [Date]
**Developer**: [Name or Agent ID]
**Original Plan**: [Link to spec/plan]
## Summary
[One paragraph: what we built and key decisions]
## Original Approach
[What we planned to do]
## Deviations & Decisions
### Decision 1: [Title]
**When**: [Timestamp/phase]
**Context**: [What prompted this decision]
**Original Plan**: [What we thought we'd do]
**Reality**: [What we actually found]
**Decision**: [What we decided]
**Rationale**: [Why this is better]
**Impact**: [Side effects or dependencies]
**Code**: [Link to relevant commit/files]
### Decision 2: [Title]
...
## Unknowns Discovered
### Unknown: [Title]
**Category**: [Architecture/Spec/Technical/Business]
**Impact**: [High/Medium/Low]
**Description**: [What we didn't know]
**Resolution**: [How we resolved it]
**Future Consideration**: [Should this inform future work?]
## Learnings
### What Worked Well
- [Learning 1]
- [Learning 2]
### What Was Surprising
- [Surprise 1]
- [Surprise 2]
### What to Do Differently Next Time
- [Improvement 1]
- [Improvement 2]
## Documentation Updates Needed
- [ ] Update ADR on [topic]
- [ ] Add to MEMORY.md: [learning]
- [ ] Update [skill/guide]: [improvement]
## Follow-up Questions
1. [Question that arose during implementation]
2. [Question for stakeholder/team]# Implementation Log: GitHub OAuth Integration
**Date**: 2026-07-08
**Original Plan**: docs/specs/github-oauth.md
## Summary
Implemented GitHub OAuth provider following existing OAuth pattern.
Key deviation: Used App Installation flow instead of user OAuth due to
org-level permission requirements. Added webhook endpoint for
installation events.
## Original Approach
- Implement standard OAuth 2.0 flow via library
- Use Personal Access Token (PAT) flow for initial testing
## Deviations & Decisions
### Decision 1: Use GitHub App Installation Flow
**When**: During initial auth flow implementation
**Context**: Testing revealed that org-level repo access requires GitHub
App installation, not user OAuth. Our target users need org repo access.
**Original Plan**: Standard OAuth with PAT
**Reality**: GitHub deprecated PAT for org access. Apps must use
Installation flow which requires:
- App installation per organization
- Installation webhook handling
- Installation-specific tokens
**Decision**: Implement GitHub App Installation flow instead
**Rationale**:
- Only way to get org-level repo access
- More secure (granular permissions)
- Better aligned with GitHub's current best practices
- Matches what users expect (seen in other tools)
**Impact**:
- Added webhook endpoint: /webhooks/github/installation
- New database table: github_installations
- Installation token refresh logic (expires after 1hr vs 6mo)
- More complex setup docs (users must create GitHub App)
**Code**: commit abc123, files: auth/github/installation.ts
### Decision 2: Cache Installation Tokens
**When**: During token refresh implementation
**Context**: Installation tokens expire after 1 hour. Naive approach would
request new token for every API call.
**Original Plan**: Request new token on each API call
**Reality**: GitHub rate limits token requests to 5000/hour per app.
With multiple users in same org, we'd hit limit quickly.
**Decision**: Cache installation tokens in Redis with 55min TTL
**Rationale**:
- Prevents rate limit issues
- Reduces latency (no token request per API call)
- 55min TTL provides 5min safety buffer before expiry
- Existing Redis used for other caching
**Impact**:
- Added Redis key pattern: github:install:{id}:token
- Token refresh logic checks cache first
- Cache invalidation on installation webhook events
**Code**: commit def456, files: auth/github/token-cache.ts
### Decision 3: Handle Installation Deletion
**When**: Writing webhook handler
**Context**: Users can uninstall the GitHub App from their org
**Original Plan**: Not explicitly considered
**Reality**: Installation deletion is common (users test, revoke, etc).
Must handle gracefully.
**Decision**: Soft-delete installations, preserve audit log
**Rationale**:
- Maintain audit trail of access history
- Prevent orphaned references in user sessions
- Allow re-installation without data loss
- Compliance requirement (track who had access when)
**Impact**:
- Added `deleted_at` column to github_installations
- Webhook handler for installation.deleted event
- Session middleware checks installation.deleted_at
- User sees clear error: "GitHub integration removed"
**Code**: commit ghi789, files: webhooks/github.ts
## Unknowns Discovered
### Unknown: GitHub App vs OAuth App
**Category**: Architecture
**Impact**: High
**Description**: Didn't realize GitHub has two different app types with
different capabilities. OAuth Apps can't get org-level repo access.
**Resolution**: Used GitHub App with Installation flow
**Future Consideration**: Document this in our OAuth integration guide.
Other providers may have similar dual-model systems.
### Unknown: Installation Token Lifespan
**Category**: Technical
**Impact**: Medium
**Description**: Installation tokens expire after 1 hour, not 6 months
like user tokens. This wasn't in our initial spec.
**Resolution**: Implemented caching strategy
**Future Consideration**: Standard pattern for short-lived tokens?
### Unknown: Rate Limit on Token Requests
**Category**: Technical
**Impact**: Medium
**Description**: Token endpoint has its own rate limit separate from API
**Resolution**: Cache tokens in Redis
**Future Consideration**: Consider for other OAuth providers too
## Learnings
### What Worked Well
- Blind spot pass identified existing OAuth pattern to follow
- Webhook infrastructure was already in place
- Redis caching pattern from other auth providers was reusable
### What Was Surprising
- GitHub's dual app model (wasn't in initial research)
- How common installation deletion is (users test a lot)
- Token request rate limiting (separate from API limits)
### What to Do Differently Next Time
- Research provider-specific gotchas more deeply upfront
- Ask explicitly about token lifespan in spec interview
- Consider short-lived tokens in architecture discussions
## Documentation Updates Needed
- [x] Add to skills/blindspot-pass examples: Check for dual auth models
- [ ] Update MEMORY.md: GitHub Apps vs OAuth Apps distinction
- [ ] Create ADR: Short-lived token caching strategy
- [ ] Update OAuth integration guide with GitHub App specifics
## Follow-up Questions
1. Should we implement GitHub App for user-level access too (consistency)?
2. Do other OAuth providers have similar dual models to document?
3. Should Redis cache TTL be configurable per provider?Temporary logs (during work):
.planning/.implementation-log-[current-date]-[slug].md # Git ignored, working filePermanent documentation (after completion):
docs/adr/NNN-[decision].md # Architecture decisions
MEMORY.md # Gotchas and learnings
wiki/[topic]/[entry].md # Knowledge base entries
.github/pull_requests/[PR].md # PR descriptionAdd to .gitignore:
.implementation-log.md
.dev-notes.mdThese are working files, not committed artifacts.
A good implementation log:
For advanced workflows, automatically log key events:
# Git commit hook to prompt for log entries
# .git/hooks/post-commit
#!/bin/bash
if [ -f .implementation-log.md ]; then
echo "📝 Implementation log detected. Add entry for this commit? (y/n)"
read -r response
if [ "$response" = "y" ]; then
echo "" >> .implementation-log.md
echo "### $(date) - $(git log -1 --pretty=%B)" >> .implementation-log.md
echo "**Commit**: $(git rev-parse --short HEAD)" >> .implementation-log.md
echo "**Decision**: [TODO: Fill in]" >> .implementation-log.md
echo "" >> .implementation-log.md
echo "Log entry template added. Edit .implementation-log.md"
fi
fiThis reminds you to log after each commit.
© jellydn, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/implementation-logger of jellydn/my-ai-tools.
Open the folder on GitHubat commit 163951e
Implementation Logger next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Implementation Logger this skilljellydn/my-ai-tools | 123 | — | ~3k | Automated safety check: Pass | MIT | |
| Cost Trackingaffaan-m/ECC | 274k | 1 repos | ~1.3k | Automated safety check: Pass | MIT | |
| Capturealirezarezvani/claude-skills | 28k | 1 repos | ~2.8k | Automated safety check: Pass | MIT | |
| Cost Trackruvnet/ruflo | 74k | — | ~773 | Automated safety check: Notes | MIT | |
| Growth Logaffaan-m/ECC | 274k | 1 repos | ~1.7k | Automated safety check: Pass | MIT | |
| Time Trackingsickn33/agentic-awesome-skills | 47k | 1 repos | ~3.8k | Automated safety check: Pass | MIT |
affaan-m/ECC
Track and report Claude Code token usage, spending, and budgets from the local ECC cost-tracker metrics log.
alirezarezvani/claude-skills
Captures and organizes chaotic brain dumps into a structured, actionable system with zero information loss.
ruvnet/ruflo
Auto-capture per-session token usage from the Claude Code session jsonl and persist to the cost-tracking namespace
affaan-m/ECC
Write growth log entries that extract reusable patterns from completed work — root cause, transferable rule, and a recognizable signal — instead of diary-style event narration, with a 4-8 sentence…
sickn33/agentic-awesome-skills
Time entry register: employee, project, client, task, hours, billable flag, rate and amount, invoice and approver.
ruvnet/ruflo
Track long-horizon objectives across multiple sessions with milestone checkpoints, progress persistence, and drift detection
jellydn/my-ai-tools
A skill your agent uses when monitoring an open GitHub PR for CI failures, review feedback, mergeability, and safe retries or fixes.
jellydn/my-ai-tools
Posts a concise visual outline as a GitHub pull request comment.
jellydn/my-ai-tools
Manage project knowledge with qmd — captures learnings, decisions, and conventions
jellydn/my-ai-tools
Generate Product Requirements Documents from feature ideas — plans specs and requirements
jellydn/my-ai-tools
Build an interactive report or experiment when the user asks to explore model capabilities.
jellydn/my-ai-tools
Fix PR review comments by implementing requested changes. An agent skill from jellydn/my-ai-tools.
Log implementation decisions — tracks deviations from plan and captures rationale. Implementation Logger is an agent skill from jellydn/my-ai-tools.
Run `npx skills add jellydn/my-ai-tools --skill implementation-logger -a claude-code`. Or copy the skill folder (skills/implementation-logger in jellydn/my-ai-tools) into .claude/skills/implementation-logger in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jellydn/my-ai-tools --skill implementation-logger -a codex`. Or copy the skill folder (skills/implementation-logger in jellydn/my-ai-tools) into .agents/skills/implementation-logger in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jellydn/my-ai-tools --skill implementation-logger -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/implementation-logger, .gemini/skills/implementation-logger, .github/skills/implementation-logger and .opencode/skills/implementation-logger in your project.
Going by SKILL.md and its folder, Implementation Logger needs the command-line tools its instructions call (git). Compatibility (from SKILL.md): cline, claude, opencode, amp, codex, gemini, cursor, pi.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Implementation Logger is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Implementation Logger: Cost Tracking (affaan-m/ECC, 274k stars), Capture (alirezarezvani/claude-skills, 28k stars), Cost Track (ruvnet/ruflo, 74k stars) and Growth Log (affaan-m/ECC, 274k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jellydn (a GitHub user) maintains it in jellydn/my-ai-tools, which has 123 GitHub stars. The repository holds 35 skills in this directory. The repository was last updated on October 7, 2026.
Source: jellydn/my-ai-tools on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.