Skip to content

docs(skill+pitfalls): defect classes from the #2043/#2042 review round#2069

Merged
jaylfc merged 1 commit into
devfrom
docs/skill-pitfalls-hognek-round2
Jul 20, 2026
Merged

docs(skill+pitfalls): defect classes from the #2043/#2042 review round#2069
jaylfc merged 1 commit into
devfrom
docs/skill-pitfalls-hognek-round2

Conversation

@jaylfc

@jaylfc jaylfc commented Jul 20, 2026

Copy link
Copy Markdown
Owner

Distills this round of deep reviews into the contributor docs so the classes stop recurring:

Docs only, no code changes.

Summary by CodeRabbit

  • Documentation
    • Clarified pull request review and folding requirements, including fresh bot-review results and replies to each checklist item.
    • Added guidance for accurately documenting deferred scope and follow-up work.
    • Documented security practices for project-scoped routes, including masked 404 responses.
    • Added pitfalls covering runtime artifacts, view registration across desktop and mobile, safe store upgrades, and partial-scope changes.

…ew round

Pitfalls: runtime state and key material never enter commits (16), new views
wire desktop AND mobile registries (17), retrofit columns on shipped stores
need guarded ALTERs because the migration runner baselines pre-existing DBs
without executing (18), scope deltas vs the issue are stated explicitly (19).
Extended pitfall 1 with the house project auth-guard pattern and pitfall 15
with the answer-in-thread requirement.

Skill: fold-first now requires in-thread replies per numbered item and bot
review freshness checks; new scope-honesty subsection covers deferral notes,
follow-up issues, and the git status runtime-artifact check.
@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The PR expands contributor guidance with stricter PR review and scope rules, plus documented pitfalls covering authorization guards, runtime artifacts and secrets, desktop/mobile view registration, and guarded schema upgrades.

Changes

Contributor guidance

Layer / File(s) Summary
PR lifecycle and scope discipline
.claude/skills/taos-development-skill/SKILL.md, docs/contributor-pitfalls.md
Review items must receive in-thread responses, bot-review success must match the current head, deferred scope must be documented with follow-up issues, and runtime artifacts must stay out of commits.
Recurring implementation pitfalls
docs/contributor-pitfalls.md
Adds guidance for project-scoped authorization with masked 404 responses, runtime keys and state, desktop/mobile view registration, and guarded schema upgrades.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • jaylfc/taOS#1871: Introduces the contributor skill framework updated by this PR.
  • jaylfc/taOS#1948: Also updates contributor skill rules for bot-review and related guardrails.
  • jaylfc/taOS#2040: Also expands recurring contributor pitfalls in docs/contributor-pitfalls.md.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the docs update adding skill guidance and recurring pitfalls from the review round.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/skill-pitfalls-hognek-round2

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@gitar-bot

gitar-bot Bot commented Jul 20, 2026

Copy link
Copy Markdown

Important

You are using the Gitar free plan. Upgrade to unlock code review, CI analysis, auto-apply, custom automations, and more.

Gitar

@kilo-code-bot

kilo-code-bot Bot commented Jul 20, 2026

Copy link
Copy Markdown

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (2 files)
  • .claude/skills/taos-development-skill/SKILL.md
  • docs/contributor-pitfalls.md

Reviewed by hy3:free · Input: 64.1K · Output: 2.1K · Cached: 136.4K

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.claude/skills/taos-development-skill/SKILL.md:
- Around line 243-245: Update the folding guidance in
.claude/skills/taos-development-skill/SKILL.md (lines 243-245) to require
answering every finding/comment, not only numbered items. Apply the same wording
change in docs/contributor-pitfalls.md (lines 145-147) so both guidance sections
enforce closure of all maintainer comments and bot findings.

In `@docs/contributor-pitfalls.md`:
- Around line 44-53: Update the guidance in “16. Never commit runtime state or
key material.” to state that exposed keys must be immediately invalidated or
rotated. Clarify that squash merging only prevents the secret from entering the
target branch; it does not remove the leak from PR/source history or hosting
retention, so repository-wide history cleanup is separately required.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 16e0b710-e004-43bf-b3b4-18259c957b35

📥 Commits

Reviewing files that changed from the base of the PR and between e2d931d and d9475e7.

📒 Files selected for processing (2)
  • .claude/skills/taos-development-skill/SKILL.md
  • docs/contributor-pitfalls.md

Comment on lines +243 to +245
Folding means code AND a reply: answer every numbered item in the PR thread
with the commit that addresses it or a concrete rebuttal. Code pushed without
in-thread replies leaves the fold formally open and the verdict at HOLD.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Close every finding, not only numbered items.

Both files narrow the response requirement to numbered items, allowing unnumbered maintainer comments or bot findings to remain formally open.

  • .claude/skills/taos-development-skill/SKILL.md#L243-L245: change “every numbered item” to “every finding/comment.”
  • docs/contributor-pitfalls.md#L145-L147: apply the same wording so both contributor guidance sections enforce the same closure contract.
🧰 Tools
🪛 SkillSpector (2.3.11)

[warning] 399: [RA2] Session Persistence: Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Remediation: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.

(Rogue Agent (RA2))


[error] 363: [TM1] Tool Parameter Abuse: Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Remediation: Validate all tool parameters against an allowlist. Reject dangerous parameter values (shell=True, --force, -rf /) and use safe defaults.

(Tool Misuse (TM1))

📍 Affects 2 files
  • .claude/skills/taos-development-skill/SKILL.md#L243-L245 (this comment)
  • docs/contributor-pitfalls.md#L145-L147
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/skills/taos-development-skill/SKILL.md around lines 243 - 245,
Update the folding guidance in .claude/skills/taos-development-skill/SKILL.md
(lines 243-245) to require answering every finding/comment, not only numbered
items. Apply the same wording change in docs/contributor-pitfalls.md (lines
145-147) so both guidance sections enforce closure of all maintainer comments
and bot findings.

Comment on lines +44 to +53
**16. Never commit runtime state or key material.**
Anything a store or subsystem writes under `data/` at runtime is state, not
source. A PR that introduces a component writing under `data/` must add that
directory to `.gitignore` in the SAME PR, and `git status` must be checked for
runtime artifacts before every commit. Any private key that reaches a pushed
commit is burned: regenerate it, and keep it out of the target branch's history
(squash merge, or rewrite the branch). Example: `data/hub/identity.json` with
live signing/encryption keys entered one branch's history and was then
re-committed by a second PR (#2043 history, #2042).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Do not imply that squash merging cleans up a leaked key.

A squash merge keeps the secret out of the target branch, but it does not remove it from the PR/source history or hosting retention. Require immediate invalidation/rotation of the exposed key and explicitly distinguish target-branch prevention from repository-wide history cleanup.

Suggested wording
-Any private key that reaches a pushed
-commit is burned: regenerate it, and keep it out of the target branch's
-history (squash merge, or rewrite the branch).
+Any private key that reaches a pushed commit is burned: immediately
+invalidate/rotate it, remove it from reachable repository history where
+possible, and ensure it is not copied into the target branch. Squash merging
+prevents propagation to the target branch but does not erase the PR/source
+history.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
**16. Never commit runtime state or key material.**
Anything a store or subsystem writes under `data/` at runtime is state, not
source. A PR that introduces a component writing under `data/` must add that
directory to `.gitignore` in the SAME PR, and `git status` must be checked for
runtime artifacts before every commit. Any private key that reaches a pushed
commit is burned: regenerate it, and keep it out of the target branch's history
(squash merge, or rewrite the branch). Example: `data/hub/identity.json` with
live signing/encryption keys entered one branch's history and was then
re-committed by a second PR (#2043 history, #2042).
**16. Never commit runtime state or key material.**
Anything a store or subsystem writes under `data/` at runtime is state, not
source. A PR that introduces a component writing under `data/` must add that
directory to `.gitignore` in the SAME PR, and `git status` must be checked for
runtime artifacts before every commit. Any private key that reaches a pushed
commit is burned: immediately invalidate/rotate it, remove it from reachable
repository history where possible, and ensure it is not copied into the target
branch. Squash merging prevents propagation to the target branch but does not
erase the PR/source history. Example: `data/hub/identity.json` with
live signing/encryption keys entered one branch's history and was then
re-committed by a second PR (`#2043` history, `#2042`).
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/contributor-pitfalls.md` around lines 44 - 53, Update the guidance in
“16. Never commit runtime state or key material.” to state that exposed keys
must be immediately invalidated or rotated. Clarify that squash merging only
prevents the secret from entering the target branch; it does not remove the leak
from PR/source history or hosting retention, so repository-wide history cleanup
is separately required.

@jaylfc
jaylfc merged commit 7f37f07 into dev Jul 20, 2026
11 checks passed
@jaylfc
jaylfc deleted the docs/skill-pitfalls-hognek-round2 branch July 20, 2026 21:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant