Trust Assessment
ticktick received a trust score of 68/100, placing it in the Caution category. This skill has some security considerations that users should review before deployment.
SkillShield's automated analysis identified 4 findings: 0 critical, 1 high, 2 medium, and 1 low severity. Key findings include Unpinned npm dependency version, Node lockfile missing, Plaintext storage of API credentials and tokens.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. All layers scored 70 or above, reflecting consistent security practices.
Last analyzed on February 13, 2026 (commit 13146e6a). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings4
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| HIGH | Plaintext storage of API credentials and tokens The skill stores sensitive TickTick OAuth `clientId`, `clientSecret`, `accessToken`, and `refreshToken` in plaintext within `~/.clawdbot/credentials/ticktick-cli/config.json`. Although the skill attempts to set file permissions to `0o600` for the file and `0o700` for the directory, this still represents a significant security risk. If the local system is compromised, these credentials can be easily exfiltrated, granting an attacker persistent access to the user's TickTick account. Implement secure credential storage mechanisms. For desktop applications, this could involve using OS-specific credential managers (e.g., macOS Keychain, Windows Credential Manager, Linux Secret Service) or encrypted storage with a master password. Avoid storing sensitive credentials in plaintext on disk. | LLM | scripts/auth.ts:30 | |
| MEDIUM | Unpinned npm dependency version Dependency 'commander' is not pinned to an exact version ('^12.0.0'). Pin dependencies to exact versions to reduce drift and supply-chain risk. | Dependencies | skills/norickkevorkov/ticktick-cli/package.json | |
| MEDIUM | Unpinned dependencies in package.json The `package.json` file specifies dependencies using caret (`^`) ranges (e.g., `"commander": "^12.0.0"`). This allows for automatic updates to new minor and patch versions. While convenient, it introduces a supply chain risk where a malicious update to a dependency could be automatically pulled in, potentially introducing vulnerabilities or backdoors without explicit review. Although Bun generates a lockfile (`bun.lockb`), explicit pinning or regular lockfile review is recommended. Pin dependencies to exact versions (e.g., `"commander": "12.0.0"`) or ensure that the lock file (`bun.lockb`) is committed and regularly reviewed to guarantee deterministic builds and prevent unexpected dependency changes. | LLM | package.json:8 | |
| LOW | Node lockfile missing package.json is present but no lockfile was found (package-lock.json, pnpm-lock.yaml, or yarn.lock). Commit a lockfile for deterministic dependency resolution. | Dependencies | skills/norickkevorkov/ticktick-cli/package.json |
Scan History
Embed Code
[](https://skillshield.io/report/7989728e46a19f9c)
Powered by SkillShield