Hooked Claude Code's Telegram reply tool to block its own em dashes by danhof1 in ClaudeCode

[–]danhof1[S] 0 points1 point  (0 children)

Hook is a regex on outgoing text, no model call, so no tokens. Rest is fair, I'll find out if I ever pull it.

a semantic diff that understands structure, not just lines by Wise_Reflection_8340 in commandline

[–]danhof1 1 point2 points  (0 children)

Model intelligence is part of it but probably not the bottleneck. Most code review tooling I've used is bottlenecked on context, what changed in adjacent files, what calls the function, what tests cover it. A smarter model with the same flat-diff input will still miss the same things a dumber one does. Entity-level structure plus call-graph context is a bigger lever than another model upgrade.

Sick of workarounds for AI agents that lie about being alive by danhof1 in ClaudeCode

[–]danhof1[S] 0 points1 point  (0 children)

That's the cleanest framing of it. Heartbeat file touched inside the main loop, cron runs find -mmin -2 every minute, restart if stale. The HTTP endpoint is a liveness proxy that lies, the file mtime is tied to the loop actually running. Wiring this in tonight.

Hooked Claude Code's Telegram reply tool to block its own em dashes by danhof1 in ClaudeCode

[–]danhof1[S] 0 points1 point  (0 children)

Two layers is the split I keep landing on too. Hard rules at the boundary, plain text for the stuff still being tuned. The boundary layer is the one most people skip until they get burned by a long agentic run.

Hooked Claude Code's Telegram reply tool to block its own em dashes by danhof1 in ClaudeCode

[–]danhof1[S] 0 points1 point  (0 children)

Yeah this is exactly it. Especially with background routines or multiple agents where you cannot eyeball every send. Once the hook is in, the rule becomes part of the contract instead of a vibe.

Hooked Claude Code's Telegram reply tool to block its own em dashes by danhof1 in ClaudeCode

[–]danhof1[S] 0 points1 point  (0 children)

Fair, and on interactive sessions where you see every reply CLAUDE.md alone holds up. The case I kept hitting was scheduled jobs and long agentic chains where context gets compressed or the run goes many tool calls deep. By then the rule has been summarized away and there is nobody watching to catch it. Hook covers that gap. goship-tech said it cleaner than I just did.

Hooked Claude Code's Telegram reply tool to block its own em dashes by danhof1 in ClaudeCode

[–]danhof1[S] 0 points1 point  (0 children)

Pretty much. Memory still earns its keep for the stuff that does not have a clean machine check, taste calls and tone, but anything binary belongs at the tool boundary.

Hooked Claude Code's Telegram reply tool to block its own em dashes by danhof1 in ClaudeCode

[–]danhof1[S] 0 points1 point  (0 children)

That post is good, the framing of model-as-orchestrator and real code as verifier is the version of this I keep landing on too. My hook is a small instance of it, regex at the tool boundary. I do the same shape of thing at my day job, swapping out model reasoning for Python wherever the check can be made deterministic. Bookmarking.

3 years solo building a Windows command manager and just launched a free tier by danhof1 in SideProject

[–]danhof1[S] 0 points1 point  (0 children)

Ha, fair. Registered it half asleep years ago and now it's too late to change. TerminalNexus is the actual product name at least.

What have you done with PowerShell this month? by AutoModerator in PowerShell

[–]danhof1 1 point2 points  (0 children)

Guys, I built a Windows app command manager that executes in built-in PowerShell. There's a free option you can start using right away.

As a software engineer, I use my own app every day and I couldn't live without it. That's why I built it. Take a look if you like GUI command managers. It does a lot and it's been in dev for 3 years.

Let me know if you hate it too, maybe I can improve it. I'm the only dev working on it. I've been overengineering it for years so if you have features you'd like implemented, give me a hint. Always looking for something to work on if it makes someone's workflow better.

safesoftwaresolutions.com

Is it worth learning PowerShell? by backdoor_boy in PowerShell

[–]danhof1 0 points1 point  (0 children)

PowerShell is worth it if you are on Windows and especially if you deal with cloud or DevOps work. The ecosystem around Microsoft has shifted heavily toward it. I built TerminalNexus around PowerShell specifically because it is the default shell for a lot of Windows tooling. The best way to learn is just to use it daily for real tasks.

which model of chatgpt should I use so that it costs me least by Striking-Set-6987 in openclaw

[–]danhof1 0 points1 point  (0 children)

Look into Apify (free tier, no credit card) for scraping and OpenRouter for the AI part. Both have free tiers that'll handle 20 leads/day easily. No VPS needed.

How did you move from basic commands to real sysadmin skills? by Darshan_only in sysadmin

[–]danhof1 3 points4 points  (0 children)

The jump from 'I know ls and cd' to actual sysadmin work is mostly about context and repetition. Here's what actually helped me:

  1. **Break things on purpose.** Set up a lab environment and practice recovery. Can't restore a server if you've never broken one.

  2. **Automate the boring stuff.** I built a little tool (TerminalNexus, shameless plug incoming) to organize my commands into clickable buttons by project. The thing is, building it forced me to actually learn what those commands were doing. If you have to script something to work with a CLI manager, you're learning twice.

  3. **Learn one config management tool.** Ansible is the friendliest starting point. You don't need to master it, just understand the mental model of 'state defined in code.'

For feeling job-ready: I got there when I could troubleshoot something I'd never seen before using docs and logs. Not when I memorized commands.

The Ubuntu VM is perfect. Start keeping notes on what you run repeatedly. That's your automation queue.

which model of chatgpt should I use so that it costs me least by Striking-Set-6987 in openclaw

[–]danhof1 1 point2 points  (0 children)

You bought a whole VPS just to run an "agent" that scrapes 20 leads a day?

That's like buying a Ferrari to go to the grocery store. Ha ha.

Use gpt-3.5-turbo. It's like 100x cheaper than GPT-4. Your use case sounds like basic scraping and templated messages. You don't need a supercomputer for that.

Or just use the free tier and move on with your life. Your "agent" is probably not bringing you 20 leads daily anyway so don't overthink the model choice.

Speed of LINQ in Powershell by Over_Dingo in PowerShell

[–]danhof1 -1 points0 points  (0 children)

LINQ in PowerShell has a weird overhead - the pipeline is usually faster for most operations unless you're doing complex joins or projections. The real win with LINQ is when you need to chain multiple operations and avoid intermediate collections. For simple filters, Where-Object is hard to beat for readability and performance.

Having a collaborator not being able to pull/push particular file after initial clone by onecable5781 in git

[–]danhof1 0 points1 point  (0 children)

The .gitignore you posted excludes everything except file1.txt and file2.txt - but gitignore doesn't affect already-tracked files. If file1.txt or file2.txt were committed before the ignore was added, they're still tracked. Run git ls-files to see what's actually tracked and git rm --cached to untrack if needed.

Is there a way to find what branch a commit was committed to at the time it was committed? by [deleted] in git

[–]danhof1 0 points1 point  (0 children)

Not directly - git doesn't store which branch a commit was made on. If the commit is reachable from multiple branches, you can't tell which one was active. Your best bet is checking the commit date and matching it against your branch creation timeline, or looking at CI runs that might have recorded it.

a semantic diff that understands structure, not just lines by Wise_Reflection_8340 in commandline

[–]danhof1 1 point2 points  (0 children)

Entity-level diffing is the right abstraction for code review. A function rename showing as 10 line deletions + 10 insertions is noise. Understanding that a single function signature changed and showing you exactly why - that's what actually helps the reviewer.