# சரிபார்த்தலும் பழுதுநீக்கமும்

> ccam doctor மூலம் பகிர்வு இணைப்புகள், கோப்பு அனுமதிகள், உள்நுழைவுகள், Claude Code பதிப்பு ஆகியவற்றைச் சரிபார்த்து, பாதுகாப்பாகப் பழுதுநீக்கக்கூடியவற்றை ccam doctor --fix மூலம் சரிசெய்யுங்கள்.

Source: https://ccam.dev/ta/features/doctor/ · Updated 2026-10-19

`ccam doctor` உங்கள் ccam நிறுவலைச் சரிபார்க்கிறது: Claude Code binary, ஒவ்வொரு கணக்கின் கோப்புறை, உள்நுழைவு, பகிர்வு இணைப்புகள், பகிரப்பட்ட MCP சர்வர்கள், usage endpoint, உங்கள் குறுக்குவழிக் கட்டளைகள். `ccam doctor --fix` தரவை இழக்காமல் செய்யக்கூடியவற்றைச் சரிசெய்கிறது, அது மாற்றும் எந்தக் கோப்பையும் முதலில் ஒரு காப்புப்பிரதிக் கோப்புறைக்கு நகர்த்துகிறது. `ccam <name>` பகிர்வு இணைப்புச் சிக்கலுடன் நிற்கும்போது, கோப்புகளைக் கையால் மீட்டெடுத்த பிறகு, அல்லது Claude Code புதுப்பிப்புக்குப் பிறகு இதை இயக்குங்கள்.

## பயன்பாடு

```sh
ccam doctor                  # check everything, change nothing
ccam doctor --fix            # check, then repair what is safe to repair
ccam --dry-run doctor --fix  # report only: what --fix would repair
```

ஒவ்வொரு கண்டுபிடிப்பும் ஒரு குறியுடன் கூடிய ஒரு வரி: `✓` சரி, `·` தகவல், `!` எச்சரிக்கை, `✗` பிழை. கணக்குக் கண்டுபிடிப்புகள் கணக்கின் பெயருடன் தொடங்கும்.

```console
$ ccam doctor
✓ Claude Code 2.1.302 (Claude Code) (/home/me/.local/bin/claude)
! personal: folder permissions are 755 (should be 0700)
! personal: .credentials.json permissions are 644 (should be 0600)
✓ personal: login valid (me@example.com)
✗ personal: /home/me/.local/share/ccam/profiles/personal/settings.json: set to shared but is a real file, not a link
· personal: unknown entries (Claude Code layout may have changed): newthing
! work: not logged in → `ccam login work`
✓ work: share links OK
! missing shortcuts in /home/me/.local/bin: ccp

`ccam doctor --fix` repairs what it can.
```

`--fix` உடன், சரிசெய்யப்பட்ட ஒவ்வொரு கண்டுபிடிப்பும் `→ fixed` என்று முடியும்:

```console
$ ccam doctor --fix
✓ Claude Code 2.1.302 (Claude Code) (/home/me/.local/bin/claude)
! personal: folder permissions are 755 (should be 0700) → fixed
! personal: .credentials.json permissions are 644 (should be 0600) → fixed
✓ personal: login valid (me@example.com)
✗ personal: /home/me/.local/share/ccam/profiles/personal/settings.json: set to shared but is a real file, not a link → fixed
· personal: unknown entries (Claude Code layout may have changed): newthing
! work: not logged in → `ccam login work`
✓ work: share links OK
! missing shortcuts in /home/me/.local/bin: ccp → fixed
```

## Options

| Option | என்ன செய்யும் | இயல்புநிலை |
| --- | --- | --- |
| `--fix` | பாதுகாப்பாகப் பழுதுநீக்கக்கூடியவற்றைச் சரிசெய்யும் (மாற்றப்பட்ட கோப்புகள் காப்புப்பிரதி எடுக்கப்படும்) | off |
| `--dry-run` (global) | ஒவ்வொரு சரிபார்ப்பையும் இயக்கும், ஆனால் `--fix` உடனும் எதையும் சரிசெய்யாது | off |

`ccam doctor` எந்த argument-ஐயும் ஏற்காது. அது `--dry-run`-ஐ மதிக்கும்: `ccam --dry-run doctor --fix` `ccam doctor` அச்சிடும் அதே கண்டுபிடிப்புகளை அச்சிட்டு, எதையும் மாற்றாது.

குறைந்தது ஒரு `✗` கண்டுபிடிப்பு சரிசெய்யப்படாமல் இருந்தால் exit code `1`, இல்லையென்றால் `0`. எச்சரிக்கைகளும் தகவல்களும் ஒருபோதும் இயக்கத்தைத் தோல்வியடையச் செய்யாது. `--fix` இல்லாமல் இயக்கம் தோல்வியடைந்தால், ccam ஒரு வெற்று வரியுடனும் `` `ccam doctor --fix` repairs what it can. `` உடனும் முடியும். ஏற்ற முடியாத config-உம் `1` மற்றும் ஒரு `ccam:` பிழையுடன் முடியும்.

## இது எப்படி வேலை செய்கிறது

`internal/cli/doctor.go` `~/.config/ccam/config.toml`-ஐ ஏற்றி, `internal/doctor/doctor.go`-இல் உள்ள `doctor.Run`-ஐ அழைக்கிறது; அது சரிபார்ப்புகளை ஒரு நிலையான வரிசையில் இயக்கி, கண்டுபிடிப்புகளைத் திருப்பித் தருகிறது. `--fix` `Options.Fix` ஆக அனுப்பப்படுகிறது, dry run-இல் அது false ஆக அமைக்கப்படும்.

நடுப் பகுதி ஒவ்வொரு கணக்குக்கும் ஒருமுறை இயங்கும். சரிபார்ப்புகளும், ஒவ்வொன்றுக்கும் `--fix` என்ன செய்கிறது என்பதும்:

1. **Claude Code பதிப்பு** (`checkClaude`). launcher செய்வது போலவே `claude` binary-ஐக் கண்டறிந்து `claude --version`-ஐ இயக்குகிறது. பதிப்பு `2.1.302`-இல் தொடங்கவில்லை என்றால், அதாவது ccam-இன் கோப்புறை அமைப்பு சரிபார்க்கப்பட்ட பதிப்பில் (`doctor.LayoutVersion`), அது `· ccam was verified against the folder layout of Claude Code 2.1.302. Any 'unknown entries' below may mean the layout changed` என்பதைச் சேர்க்கிறது. binary இல்லாமையும் தோல்வியடையும் `--version`-உம் பிழைகள். சரிசெய்தல் இல்லை.
2. **சூழலில் உள்ள credentials** (`checkAuthEnv`). `CLAUDE_CODE_OAUTH_TOKEN`, `ANTHROPIC_API_KEY` அல்லது `ANTHROPIC_AUTH_TOKEN` அமைக்கப்பட்டிருந்தால் எச்சரிக்கிறது: அந்த shell-இலிருந்து தொடங்கும் ஒவ்வொரு கணக்கும் அதைப் பெறும், Claude Code கணக்கின் சொந்த உள்நுழைவை விட அதற்கு முன்னுரிமை கொடுக்கும். சரிசெய்தல் இல்லை; அதை நீங்களே நீக்குங்கள்.
3. **கோப்புறை** (`checkProfile`). கணக்குக் கோப்புறை இல்லாதது பிழை, அந்தக் கணக்கின் சரிபார்ப்புகள் அங்கேயே முடியும். group அல்லது other bits ஏதேனும் அமைக்கப்பட்ட அனுமதிகள் எச்சரிக்கை; `--fix` `chmod 0700`-ஐ இயக்கும்.
4. **உள்நுழைவுக் கோப்பு** (`checkCredentials`). `.credentials.json` `lstat` மூலம் சரிபார்க்கப்படுகிறது. ஒவ்வொரு கணக்குக்கும் சொந்த token இருக்க வேண்டும் என்பதால், symlink பிழை, அது சரிசெய்யப்படாது. `0600` அல்லாத mode எச்சரிக்கை; `--fix` `chmod 0600`-ஐ இயக்கும். பிறகு உள்நுழைவு படிக்கப்படுகிறது (macOS-இல் முதலில் Keychain-இலிருந்து). உள்நுழைவு இல்லாதது `ccam login <name>`-ஐச் சுட்டும் எச்சரிக்கை. காலாவதியான refresh token `login expired` பிழை; காலாவதியான access token வெறும் தகவல் மட்டுமே, ஏனெனில் அடுத்த தொடக்கத்தில் Claude Code அதைப் புதுப்பிக்கும். இவற்றில் எதுவும் சரிசெய்யப்படாது.
5. **பகிர்வு இணைப்புகள்** (`share.Check`). `share.Layout`-இல் உள்ள ஒவ்வொரு பாதையையும் கணக்கின் பகிர்வு அமைப்புகளுடன், `lstat` மற்றும் `readlink`-ஐ மட்டும் பயன்படுத்தி ஒப்பிடுகிறது. அது நான்கு வகைகளைத் தெரிவிக்கிறது: இல்லாத இணைப்பு, வேறிடத்தைச் சுட்டும் இணைப்பு, இணைப்பு இருக்க வேண்டிய இடத்தில் உண்மையான கோப்பு, இப்போது local ஆக உள்ள உருப்படிக்கு மீதமிருக்கும் இணைப்பு. இல்லாத இணைப்பு எச்சரிக்கை, மற்றவை பிழைகள்.
6. **தெரியாத உள்ளீடுகள்** (`checkUnknownEntries`). Claude Code அமைப்பு மாறியிருக்கலாம் என்பதற்கான குறிப்பாக, கணக்குக் கோப்புறையில் ccam-க்குத் தெரியாத (`share.Known`) மேல்நிலைப் பெயர்களைப் பட்டியலிடுகிறது. தகவல் மட்டுமே.
7. **Plugin பாதைகள்** (`checkPlugins`). Plugin registries (`installed_plugins.json`, `known_marketplaces.json`) absolute பாதைகளைச் சேமிக்கின்றன. ஒவ்வொரு குழுவின் `plugins/`-இலும், ஒரு கணக்கின் கோப்புறை வழியாகச் செல்லும் பாதைகள் அந்தக் கணக்கு நீக்கப்படும்போதோ பெயர் மாற்றப்படும்போதோ உடைந்துவிடும். `--fix` அவற்றை `profile.RewritePluginPaths` மூலம் குழுக் கோப்புறைக்கு மாற்றி எழுதுகிறது; இது registry கோப்பின் atomic எழுதுதல்.
8. **MCP சர்வர்கள்** (`checkMCP`). ஒவ்வொரு குழுவின் `mcp.json`-ஐயும் ஒருமுறை ஏற்றுகிறது. படிக்க முடியாத கோப்பு பிழை; `mcp.Validate`-இல் தோல்வியடையும் சர்வர் எச்சரிக்கை. சரிசெய்தல் இல்லை.
9. **Usage பதில் வடிவம்** (`checkUsageFormat`). cache இல்லாமல், வழக்கமான 3 வினாடி வரம்புடன், ஒரு கணக்கு பதில் அளிக்கும் வரை ஒன்றன்பின் ஒன்றாக usage endpoint-இடம் கேட்கிறது. பதில் இனி parse ஆகவில்லை என்றால், `ccam usage` நிலை வரி cache-க்குத் திரும்பும் என்று எச்சரிக்கிறது. network-ஐப் பயன்படுத்தும் ஒரே சரிபார்ப்பு இதுதான்.
10. **குறுக்குவழிகள்** (`checkShims`). ஏதாவது ஒரு கணக்குக்குக் குறுக்குவழி இருந்தால் மட்டுமே. `~/.local/bin`-இல் இல்லாத இணைப்புகள் எச்சரிக்கை; `--fix` `shim.Install`-ஐ அழைக்கிறது, அது இல்லாத இணைப்புகளை மட்டுமே உருவாக்கும், மற்ற கோப்புகளை ஒருபோதும் தொடாது. `PATH`-இல் இல்லாத bin கோப்புறை எச்சரிக்கை, அது சரிசெய்யப்படாது.

### பகிர்வு இணைப்புகளைச் சரிசெய்தல்

தொடக்கப் பாதை இல்லாத இணைப்பை அந்த இடத்திலேயே உருவாக்குகிறது, ஆனால் தரவை இழக்கக்கூடிய எதற்கும் நின்று இங்கே சுட்டிக்காட்டுகிறது:

```console
$ ccam work
ccam: stopped because of share link problems:
  /home/me/.local/share/ccam/profiles/work/CLAUDE.md: set to shared but is a real file, not a link
Repair them with `ccam doctor --fix`, then run again
```

எந்தப் பகிர்வு இணைப்புச் சிக்கலுக்கும், `--fix` கணக்கின் பகிர்வு அமைப்புகளைத் தற்போதைய நிலையாகவும் இலக்கு நிலையாகவும் கொடுத்து `share.Build`-ஐ அழைக்கிறது, பிறகு `Plan.Apply`-ஐ. `Build` வட்டில் உள்ளதிலிருந்து ஒவ்வொரு படியையும் மீண்டும் பெறுகிறது, `ccam share` பயன்படுத்தும் அதே திட்டம், அதனால் பழுதுநீக்கம் பகிர்வை இயக்குவதற்கான அதே விதிகளைப் பின்பற்றுகிறது.

இங்கே `settings.json` ஓர் உண்மையான கோப்பு. குழுவிடம் ஏற்கெனவே வேறுபட்ட `settings.json` இருப்பதால், முரண்பாடு அதன் இயல்புநிலைத் தேர்வான `KeepGroup`-ஐ எடுக்கிறது, அதனால் குழுவின் நகல் அப்படியே இருக்கிறது. கணக்கின் கோப்பு கணக்குக் கோப்புறைக்குள் `.ccam-backup/<time>/settings.json`-க்கு நகர்கிறது, `os.Symlink` பாதையைக் குழுவுடன் இணைக்கிறது. மற்ற நிலைகள்:

- குழுவிடம் இன்னும் நகல் இல்லையென்றால், கணக்கின் கோப்பு குழுவுக்குள் நகர்ந்து அதன் முதல் உள்ளடக்கமாகிறது.
- கோப்புறைக்கு, குழுவிடம் இல்லாத கோப்புகள் குழுவுக்குள் நகரும்; மீதி காப்புப்பிரதிக்குச் செல்லும்.
- `history.jsonl`-க்கு, இயல்புநிலை `merge by line`: குழுவின் வரிகள், பிறகு உங்கள் புதிய வரிகள். குழுவின் முந்தைய நகல் `.ccam-backup/<time>/group/`-இல் சேமிக்கப்படும்.
- மற்றொரு குழுவுக்கான இணைப்பு மாற்றப்படும். ccam-க்கு வெளியே உள்ள கோப்புறைக்கான இணைப்பு காப்புப்பிரதிக்குச் செல்லும், குழு காலியாக இருந்தால் அதன் உள்ளடக்கம் குழுவின் தொடக்க உள்ளடக்கமாகும்.
- இப்போது local ஆக உள்ள உருப்படிக்காக மீதமிருக்கும் இணைப்பு நீக்கப்படும், கணக்குக்குக் குழுவின் உள்ளடக்கத்தின் நகல் கிடைக்கும்.

இணைப்புகளை நீக்குவதைத் தவிர, ஒவ்வொரு படியும் தரவைக் குழுவுக்குள்ளோ காப்புப்பிரதிக் கோப்புறைக்குள்ளோ நகர்த்துகிறது. எதுவும் நீக்கப்படுவதில்லை.

## பாதுகாப்பும் விளிம்பு நிலைகளும்

- வெறும் `ccam doctor` ஒருபோதும் எதையும் மாற்றுவதில்லை. scripts-இல் உறுதியாக இருக்க `--fix` உடன் `--dry-run` பயன்படுத்துங்கள்.
- ஒரு கணக்கு இயங்குகிறதா என்று `doctor --fix` சரிபார்ப்பதில்லை. ஒரு கணக்கின் பகிர்வு இணைப்புகளைச் சரிசெய்யும் முன் அதன் Claude Code-ஐ மூடுங்கள், ஏனெனில் அமர்வு அந்தக் கோப்புகளில் தொடர்ந்து எழுதுகிறது.
- பகிர்வுப் பழுதுநீக்கம் தோல்வியடைந்தால், ccam அந்தக் கணக்குக்கு `could not repair share links: <error>` என்று தெரிவித்து, அதன் தெரியாத உள்ளீட்டுச் சரிபார்ப்பைத் தவிர்க்கும். மற்ற கணக்குகள் தொடர்ந்து சரிபார்க்கப்படும்.
- `ccam share` பாதியில் தோல்வியடைந்தால், அது முதலில் இலக்கு அமைப்புகளைச் சேமித்து, `ccam doctor --fix` மூலம் முடிக்கச் சொல்லும்.
- symlink ஆன `.credentials.json`, காலாவதியான உள்நுழைவு, சூழல் credentials ஆகியவை தெரிவிக்கப்படும், ஆனால் ஒருபோதும் மாற்றப்படாது.
- Plugin registry மாற்றங்கள் atomic ஆக எழுதப்படும், ஆனால் `.ccam-backup/`-க்கு நகலெடுக்கப்படாது.

## தொடர்புடையவை

- [MCP சர்வர்கள், அமைப்புகள், வரலாற்றைப் பகிர்தல்](https://ccam.dev/ta/docs/sharing.md)
- [ஏற்கெனவே உள்ள அமைப்பை நகலெடுத்தல்](https://ccam.dev/ta/features/migrate.md)
- [பயன்பாட்டு வரம்புகளும் கணக்கு மாற்றமும்](https://ccam.dev/ta/docs/usage-limits.md)
- [கட்டளைகள்](https://ccam.dev/ta/docs/commands.md)
