sync: auto-sync from HOWARD-HOME at 2026-07-18 11:53:40
Author: Howard Enos Machine: HOWARD-HOME Timestamp: 2026-07-18 11:53:40
This commit is contained in:
@@ -89,6 +89,9 @@
|
||||
- [CA managed programmatically (with discipline)](feedback_ca_programmatic_management.md) — Conditional Access CAN be written via Tenant Admin app; ALWAYS report-only first + exclude break-glass + confirm before enforcing. Overrides old "CA manual" rule.
|
||||
- [Ollama Tier-0 Routing](feedback_ollama_tier0_routing.md) — Route drafts/summaries/classifications through Ollama (qwen3:14b). Mike designed ClaudeTools this way — not optional.
|
||||
- [/save writes narrative directly](feedback_save_no_ollama.md) — No Ollama for /save; write all sections inline — too slow.
|
||||
- [Tracker comment discipline](feedback_tracker_discipline.md) — Every issue state change MUST have a Gitea comment with commit refs. No silent closes. The comment trail IS the documentation.
|
||||
- [Auto-file bugs to tracker](feedback_tracker_autofile.md) — When a bug surfaces during a session, file it via bug-tracker skill immediately. Errorlog alone is not enough — the tracker is what makes bugs visible and trackable.
|
||||
- [tracker.py Windows encoding](feedback_tracker_encoding.md) — Set UTF-8 stdout on Windows or unicode issue titles crash. Pattern: io.TextIOWrapper with errors='replace'.
|
||||
- [Identity precedence](feedback_identity_precedence.md) — Trust `.claude/identity.json` over the system-reminder `userEmail` hint when they disagree (shared-login machines).
|
||||
- [1Password — always use service token](feedback_1password_service_token.md) — Source OP_SERVICE_ACCOUNT_TOKEN from SOPS for every `op` call. Desktop-app integration prompts are unacceptable in agent flows.
|
||||
- [Point vault-access teammates at SOPS path](feedback_vault_pointer_for_teammates.md) — When relaying infra/credential info to Howard or other vault-access teammates, hand over the SOPS path + key anchors; don't transcribe the entry's fields into the message.
|
||||
|
||||
16
.claude/memory/feedback_tracker_autofile.md
Normal file
16
.claude/memory/feedback_tracker_autofile.md
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: Auto-file bugs to tracker when found
|
||||
description: When a bug or error surfaces during a session, file it as a Gitea issue via the bug-tracker skill immediately — do not rely on someone remembering later.
|
||||
type: feedback
|
||||
---
|
||||
|
||||
Bugs found during sessions were getting lost because they were only logged to errorlog.md (a flat file nobody checks proactively) or mentioned in session logs (buried in narrative). The tracker exists to make bugs visible.
|
||||
|
||||
**Why:** Howard and Mike built the tracker specifically because "bug fixes are getting dropped and forgotten." The errorlog captures errors but doesn't track resolution. The wiki captures knowledge but doesn't track status. Only the tracker (Gitea issues) has status, priority, assignee, and comment history.
|
||||
|
||||
**How to apply:**
|
||||
- When a skill fails with a real bug (not a transient/env issue): file it via `py .claude/skills/bug-tracker/scripts/tracker.py create ...`
|
||||
- When the user reports something broken: confirm the title/priority with them, then file it
|
||||
- Still log to errorlog.md (that's the pattern corpus for linting), but ALSO file the tracker issue
|
||||
- Do NOT file: client machine problems, vendor API limitations, one-off env issues
|
||||
- DO file: skill bugs, harness bugs, RMM code bugs, dashboard bugs, script failures that need follow-up
|
||||
17
.claude/memory/feedback_tracker_discipline.md
Normal file
17
.claude/memory/feedback_tracker_discipline.md
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
name: Tracker comment discipline
|
||||
description: Every issue state change (fix, close, progress, block) MUST have a comment in the Gitea issue explaining what was done, with commit refs. No silent closes. No issues left without a trail.
|
||||
type: feedback
|
||||
---
|
||||
|
||||
When fixing a bug, closing an issue, or making progress on any tracked item, ALWAYS add a comment to the Gitea issue via the bug-tracker skill BEFORE or AT the time of the state change.
|
||||
|
||||
**Why:** Issues were being closed without comments, fixes were committed without updating the tracker, and status lived in FEATURE_ROADMAP.md but never flowed back to the issues. Mike opened the tracker and saw stale/wrong status because nobody went back to update the issues. The whole point of the tracker is the comment trail.
|
||||
|
||||
**How to apply:**
|
||||
- When a fix is committed: `py tracker.py comment <repo> <num> --body "Fixed in commit <sha>. <what was done>"`
|
||||
- When closing: always use `--comment` flag: `py tracker.py close <repo> <num> --comment "reason"`
|
||||
- When making progress: add a comment describing what was tried/done
|
||||
- When a session discovers an issue is already fixed: verify in code, add the verification comment with commit refs, then close
|
||||
- Never close an issue silently — the comment IS the documentation
|
||||
- Check FEATURE_ROADMAP.md status against tracker status and reconcile discrepancies
|
||||
11
.claude/memory/feedback_tracker_encoding.md
Normal file
11
.claude/memory/feedback_tracker_encoding.md
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
name: tracker.py Windows encoding fix
|
||||
description: tracker.py must set UTF-8 stdout/stderr on Windows or issue titles with unicode chars crash with UnicodeEncodeError on cp1252.
|
||||
type: feedback
|
||||
---
|
||||
|
||||
tracker.py crashed on `list --state closed` because some Gitea issue titles contain unicode replacement chars (from copy-paste dashes). Windows console defaults to cp1252 which can't encode them.
|
||||
|
||||
**Why:** Git-for-Windows bash uses cp1252 console encoding, not UTF-8. Any print() of non-ASCII text crashes without the encoding wrapper.
|
||||
|
||||
**How to apply:** The fix is already in tracker.py (lines 31-33): `sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace')`. Apply the same pattern to any new Python script that prints API data on Windows.
|
||||
@@ -21,6 +21,7 @@ Environment:
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import io
|
||||
import json
|
||||
import os
|
||||
import subprocess
|
||||
@@ -29,6 +30,11 @@ import urllib.request
|
||||
import urllib.error
|
||||
from pathlib import Path
|
||||
|
||||
# Fix Windows console encoding for unicode issue titles
|
||||
if sys.stdout.encoding != 'utf-8':
|
||||
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace')
|
||||
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8', errors='replace')
|
||||
|
||||
API = "https://git.azcomputerguru.com/api/v1"
|
||||
OWNER = "azcomputerguru"
|
||||
TRACKED_REPOS = ["gururmm", "guru-rmm", "guru-connect", "claudetools"]
|
||||
|
||||
@@ -19,6 +19,14 @@ Categories (the `[type]` tag): _(none)_ = skill/command execution failure ·
|
||||
|
||||
<!-- Append entries below this line -->
|
||||
|
||||
2026-07-18 | Howard-Home | bug-tracker | [correction] 12 closed gururmm issues had zero fix comments — fixes were committed but tracker was never updated [ctx: ref=feedback_tracker_discipline]
|
||||
|
||||
2026-07-18 | Howard-Home | bug-tracker | [friction] tracker.py crashed on Windows with UnicodeEncodeError cp1252 when printing issue titles with unicode chars [ctx: ref=feedback_tracker_encoding]
|
||||
|
||||
2026-07-18 | Howard-Home | bug-tracker | [friction] tracker.py list --state all passed 'all' to Gitea API which doesn't support it — needed separate open+closed queries [ctx: ref=tracker.py cmd_list]
|
||||
|
||||
2026-07-18 | Howard-Home | bug-tracker | [friction] tracker.py status showed 50 for claudetools (actual 73) — no pagination in cmd_status; only fetched first page [ctx: ref=feedback_tracker_encoding fix=fetch_all_issues helper]
|
||||
|
||||
2026-07-17 | Howard-Home | coord | coord API call failed (HTTP 422) [ctx: http=422 cmd=todo done resp={"error": "Request validation failed", "details": {"validation_errors": [{"field]
|
||||
|
||||
2026-07-17 | GURU-5070 | remediation-tool/exchange | [correction] Repeatedly used investigator-exo tier for Exchange REST -> 401 on every adminapi call (Security Investigator app lacks Exchange.ManageAsApp). Correct tier is exchange-op (only app with both Exchange.ManageAsApp + Exchange Admin role). Mike's 6th time hitting this. Fixed docs (SKILL.md, gotchas.md) + user-breach-check.sh (was using investigator-exo -> mailbox delegate/forwarding checks silently returned empty on every breach check) + memory reference_exchange_online_exchangeop_tier. [ctx: tenant=azcomputerguru.com ref=reference_exchange_online_exchangeop_tier]
|
||||
|
||||
Reference in New Issue
Block a user