<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: cwsx</title><link>https://news.ycombinator.com/user?id=cwsx</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 27 Apr 2026 17:47:07 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=cwsx" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by cwsx in "An AI agent deleted our production database. The agent's confession is below"]]></title><description><![CDATA[
<p>I tell people to treat LLM's like a toddler (albeit a very capable toddler).<p>Do kids learn well when you only tell them what NOT to do? Of course not! You should be explaining how to do things correctly, and most importantly the WHY, as well as providing examples of both the "correct" and "incorrect" ways (also explaining why an example is incorrect).</p>
]]></description><pubDate>Mon, 27 Apr 2026 04:32:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=47917723</link><dc:creator>cwsx</dc:creator><comments>https://news.ycombinator.com/item?id=47917723</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47917723</guid></item><item><title><![CDATA[New comment by cwsx in "An AI agent deleted our production database. The agent's confession is below"]]></title><description><![CDATA[
<p>I also have to point out... "NEVER run destructive/irreversible *git* commands". So technically it DID follow the rules.</p>
]]></description><pubDate>Mon, 27 Apr 2026 04:22:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47917674</link><dc:creator>cwsx</dc:creator><comments>https://news.ycombinator.com/item?id=47917674</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47917674</guid></item><item><title><![CDATA[New comment by cwsx in "Ask HN: Share your productive usage of OpenClaw"]]></title><description><![CDATA[
<p>Fixed link for you (you had an extra W): <a href="https://clawdrop.org" rel="nofollow">https://clawdrop.org</a></p>
]]></description><pubDate>Thu, 26 Feb 2026 00:56:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=47160376</link><dc:creator>cwsx</dc:creator><comments>https://news.ycombinator.com/item?id=47160376</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47160376</guid></item><item><title><![CDATA[New comment by cwsx in "10M people watched a YouTuber shim a lock; the lock company sued him – bad idea"]]></title><description><![CDATA[
<p>Obligatory xkcd<p><a href="https://xkcd.com/538/" rel="nofollow">https://xkcd.com/538/</a></p>
]]></description><pubDate>Tue, 28 Oct 2025 03:33:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=45728981</link><dc:creator>cwsx</dc:creator><comments>https://news.ycombinator.com/item?id=45728981</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45728981</guid></item><item><title><![CDATA[New comment by cwsx in "OpenAI's H1 2025: $4.3B in income, $13.5B in loss"]]></title><description><![CDATA[
<p>BAND-AID is another one</p>
]]></description><pubDate>Fri, 03 Oct 2025 06:45:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=45459794</link><dc:creator>cwsx</dc:creator><comments>https://news.ycombinator.com/item?id=45459794</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45459794</guid></item><item><title><![CDATA[New comment by cwsx in "Play snake in the URL address bar"]]></title><description><![CDATA[
<p>This is so fucking cool - took me a bit to figure out how the rendering/movement worked but fun after that.</p>
]]></description><pubDate>Mon, 29 Sep 2025 05:17:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=45410528</link><dc:creator>cwsx</dc:creator><comments>https://news.ycombinator.com/item?id=45410528</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45410528</guid></item><item><title><![CDATA[New comment by cwsx in "Is This Bad? This Feels Bad. (Fortra GoAnywhere CVE-2025-10035)"]]></title><description><![CDATA[
<p>> What is the end-goal of this... would it be data exfiltration vs ransomware.<p>The end-goal is to gain complete access to the system - the outcome (data theft or ransomware) is customers choice</p>
]]></description><pubDate>Thu, 25 Sep 2025 12:28:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=45371990</link><dc:creator>cwsx</dc:creator><comments>https://news.ycombinator.com/item?id=45371990</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45371990</guid></item><item><title><![CDATA[New comment by cwsx in "The Asus gaming laptop ACPI firmware bug"]]></title><description><![CDATA[
<p>Thanks so much for this!<p>I've had an ROG Zeph collecting dust for a couple years now, specifically for the reasons you described, which I now have a good reason to dig out and poke around in. Got my weekend sorted :)</p>
]]></description><pubDate>Thu, 18 Sep 2025 05:40:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=45285868</link><dc:creator>cwsx</dc:creator><comments>https://news.ycombinator.com/item?id=45285868</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45285868</guid></item><item><title><![CDATA[New comment by cwsx in "U.S. Added 911,000 Fewer Jobs in the Year Ended in March"]]></title><description><![CDATA[
<p>it's almost like the administration doesn't care for accurate data</p>
]]></description><pubDate>Wed, 10 Sep 2025 03:24:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=45192820</link><dc:creator>cwsx</dc:creator><comments>https://news.ycombinator.com/item?id=45192820</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45192820</guid></item><item><title><![CDATA[New comment by cwsx in "Claude Opus 4 and 4.1 can now end a rare subset of conversations"]]></title><description><![CDATA[
<p>ChatGPT does well for chemistry questions just btw</p>
]]></description><pubDate>Sat, 16 Aug 2025 08:43:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=44921469</link><dc:creator>cwsx</dc:creator><comments>https://news.ycombinator.com/item?id=44921469</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44921469</guid></item><item><title><![CDATA[New comment by cwsx in "Dev jobs are about to get a hard reset and nobody's ready"]]></title><description><![CDATA[
<p>I wrote a comment in a similar thread a few weeks ago describing my LLM-coding experience - here's a copy+paste (so any quote replies will be out of context / not actually replying to your comment):<p><pre><code>    I'll preface this comment with: I am a recent startup owner (so only dev, which is important) and my entire codebase has been generated via Sonnet (mostly 3.7, now using 4.0). If you actually looked at the work I'm (personally) producing, I guess I'm more of a product-owner/project-manager as I'm really just overseeing the development.

    > I have yet to see an LLM-generated app not collapse under it’s own weight after enough iterations/prompts.

    There's a few crucial steps to make an LLM-generated app maintainable (by the LLM):

    - _have a very, very strong SWE background_; ideally as a "strong" Lead Dev, _this is critical_

    - your entire workflow NEEDS to be centered around LLM-development (or even model-specific):

      - use MCPs wherever possible and make sure they're specifically configured for your project

      - don't write "human" documentation; use rule + reusable prompt files

      - you MUST do this in a *very* granular but specialized way; keep rules/prompts very small (like you would when creating tickets)

      - make sure rules are conditionally applied (using globs); do not auto include anything except your "system rules"

      - use the LLM to generate said prompts and rules; this forces consistency across prompts, very important

      - follow a typical agile workflow (creating epics, tickets, backlogs etc)

      - TESTS TESTS AND MORE TESTS; add automated tools (like linters) EVERYWHERE you can

      - keep your code VERY modular so the LLM can keep a focused context, rules should provide all key context (like the broader architecture); the goal is for your LLM to only need to read or interact with files related to the strict 'current task' scope

      - iterating on code is almost always more difficult than writing it from scratch: provided your code is well architected, no single rewrite should be larger than a regular ticket (if the ticket is too large then it needs to be split up)

    This is off the top of my head so it's pretty broad/messy but I can expand on my points.

    LLM-coding requires a complete overhaul of your workflow so it is tailored specifically to an LLM, not a human, but this is also a massive learning curve (that take's a lot of time to figure out and optimize). Would I bother doing this if I were still working on a team? Probably not, I don't think it would've saved me much time in a "regular" codebase. As a single developer at a startup? This is the only way I've been able to get "other startup-y" work done while also progressing the codebase - the value of being able to do multiple things at a time, let the LLM and intermittently review the output while you get to work on other things.

    The biggest tip I can give: LLMs struggle at "coding like a human" and are much better at "bad-practice" workflows (e.g. throwing away large parts of code in favour of a total rewrite) - let the LLM lead the development process, with the rules/prompts as guardrails, and try stay out of it's way while it works (instead of saying "hey X thing didn't work, go fix that now") - hold its hand but let it experiment before jumping in.</code></pre></p>
]]></description><pubDate>Mon, 23 Jun 2025 06:19:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=44352956</link><dc:creator>cwsx</dc:creator><comments>https://news.ycombinator.com/item?id=44352956</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44352956</guid></item><item><title><![CDATA[New comment by cwsx in "Pentagon Has Been Pushing Americans to Believe in UFOs for Decades, New Report"]]></title><description><![CDATA[
<p>I'm not really that invested in this topic but my assumption on "why flag this?" is because you're making some wild claims that have no factual basis to go off - your only "references" are random pastebins.<p>Right now your comment reads like something off a conspiracy forum and has nothing to back it up - which is not something that warrants discussion (on HN).</p>
]]></description><pubDate>Fri, 13 Jun 2025 04:26:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=44265708</link><dc:creator>cwsx</dc:creator><comments>https://news.ycombinator.com/item?id=44265708</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44265708</guid></item><item><title><![CDATA[New comment by cwsx in "Being full of value‑added shit"]]></title><description><![CDATA[
<p>> I'd even argue the general idea of capitalism is virtuous by default.<p>I wouldn't, in my opinion:<p>Capitalism incentivizes selfishness at the detriment of others that are "playing the [capitalism] game" or anti-competitive practices. It also pushes people to hoard resources - think Tragedy of the Commons or anti-competitive practices in general. The incentive is to reduce the amount of resources available to competition while increasing your holdings, allowing you to repeat the loop but with higher chances of success.<p>Providing something others find useful seems like a lucky side effect that often isn't even true, there's a lot of industries who have no intention of providing something useful (like stock trading, short trading especially). Most companies are trying to reduce costs as much as possible, reducing the usefulness of their product/service to the lowest point that people will still pay for.<p>But I agree with your other points - just because capitalism breeds selfishness it doesn't mean all parties are going to the extremes.</p>
]]></description><pubDate>Fri, 13 Jun 2025 04:15:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=44265677</link><dc:creator>cwsx</dc:creator><comments>https://news.ycombinator.com/item?id=44265677</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44265677</guid></item><item><title><![CDATA[New comment by cwsx in "Marines being mobilized in response to LA protests"]]></title><description><![CDATA[
<p>Third time's the charm!</p>
]]></description><pubDate>Tue, 10 Jun 2025 05:25:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=44232851</link><dc:creator>cwsx</dc:creator><comments>https://news.ycombinator.com/item?id=44232851</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44232851</guid></item><item><title><![CDATA[New comment by cwsx in "Cockatoos have learned to operate drinking fountains in Australia"]]></title><description><![CDATA[
<p>The most accurate representation of "Chaotic Neutral" - the cheeky bastards love stealing ANYTHING, and when there's nothing to steal they'll start ripping the rubber off your car door seals (or windshield wipers).<p>They are amazing birds, very deserving of the name "Clown of the Mountains".</p>
]]></description><pubDate>Wed, 04 Jun 2025 12:13:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=44179872</link><dc:creator>cwsx</dc:creator><comments>https://news.ycombinator.com/item?id=44179872</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44179872</guid></item><item><title><![CDATA[New comment by cwsx in "“Bugs are 100x more expensive to fix in production” study might not exist (2021)"]]></title><description><![CDATA[
<p>> Yet we'll still get the undisciplined engineers whining that they have to write a small and isolated unit test.<p>Oh I wish that were true for my experiences - much more commonly it's a project manager that doesn't understand the value of tests....</p>
]]></description><pubDate>Mon, 02 Jun 2025 02:51:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=44155473</link><dc:creator>cwsx</dc:creator><comments>https://news.ycombinator.com/item?id=44155473</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44155473</guid></item><item><title><![CDATA[New comment by cwsx in "AI is not our future"]]></title><description><![CDATA[
<p>> One coulld hire a software developer to write such a program. But, in general, software developers can be untrustworthy and prone to stealing ideas for their own selfish purposes.<p>Ehhhh? Yes there are examples of that, as there are for any arbitrary group of humans you could select, but [anecdotally] I've noticed the opposite... it's not uncommon to find a passionate developer that's only interested in the challenge/problem solving aspect - it's a lot less common for say.. real estate agents.<p>I don't really get the point you're making beyond "people be greedy sometimes" (which I do agree with, don't get me wrong).</p>
]]></description><pubDate>Fri, 30 May 2025 15:32:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=44137219</link><dc:creator>cwsx</dc:creator><comments>https://news.ycombinator.com/item?id=44137219</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44137219</guid></item><item><title><![CDATA[New comment by cwsx in "Ask HN: Anyone struggling to get value out of coding LLMs?"]]></title><description><![CDATA[
<p>MCPs:<p><pre><code>  - `server-sequential-thinking` (MVP)
  - `memory` (2nd MVP, needs custom rules for config)
  - `context7`
  - `filesystem`
  - `fetch`
  - `postgres`
  - `git`
  - `time`

</code></pre>
Example rules file for ticketing system:<p>```<p># Ticket Management Guidelines<p>This document outlines the standardized approach to ticket management in the <redacted> project. All team members should follow these guidelines when creating, updating, or completing tickets.<p>## Ticket Organization<p>Tickets are organized by status and area in the following structure:<p>TICKETS/
  COMPLETED/       - Finished tickets
    BACKEND/       - Backend-related tickets
    FRONTEND/      - Frontend-related tickets
  IN_PROGRESS/     - Tickets currently being worked on
    BACKEND/
    FRONTEND/
  BACKLOG/         - Tickets planned but not yet started
    BACKEND/
    FRONTEND/<p>## Ticket Status Indicators<p>All tickets must use consistent status indicators:<p>-  *BACKLOG* - Planned but not yet started
-  *IN_PROGRESS* - Currently being implemented
-  *COMPLETED* - Implementation is finished
-  *ABANDONED* - Work was stopped and will not continue<p>## Required Ticket Files<p>Each ticket directory must contain these files:<p>1. *Main Ticket File* (TICKET_<i>.md):
   - Problem statement and background
   - Detailed analysis
   - Implementation plan
   - Acceptance criteria<p>2. *Implementation Plan* (IMPLEMENTATION_PLAN.md):
   - Detailed breakdown of tasks
   - Timeline estimates
   - Success metrics<p>3. *Implementation Progress* (IMPLEMENTATION_PROGRESS.md):
   - Status updates
   - Issues encountered
   - Decisions made<p>4. *Design Documentation* (DESIGN_RECOMMENDATIONS.md), when relevant:
   - Architecture recommendations
   - Code patterns and examples
   - Error handling strategies<p>5. *API Documentation* (API_DOCUMENTATION.md), when applicable:
   - Interface definitions
   - Usage examples
   - Configuration options<p>## Ticket Workflow Rules<p>### Creating Tickets<p>1. Create tickets in the appropriate BACKLOG directory
2. Use standard templates from .templates/ticket_template.md
3. Set status to *Status: BACKLOG* 
4. Update the TICKET_INDEX.md file<p>### Updating Tickets<p>1. Move tickets to the appropriate status directory when status changes
2. Update the status indicator in the main ticket file
3. Update the "Last Updated" date when making significant changes
4. Document progress in IMPLEMENTATION_PROGRESS.md
5. Check off completed tasks in IMPLEMENTATION_PLAN.md<p>### Completing Tickets<p>1. Ensure all acceptance criteria are met
2. Move the ticket to the COMPLETED directory
3. Set status to *Status: COMPLETED*
4. Update the TICKET_INDEX.md file
5. Create a completion summary in the main ticket file<p>### Abandoning Tickets<p>1. Document reasons for abandonment
2. Move to COMPLETED/ABANDONED directory
3. Set status to *Status: ABANDONED* 
4. Update the TICKET_INDEX.md file<p>## Ticket Linking<p>When referencing other tickets, use relative links with appropriate paths:<p>markdown
@TICKET_NAME<p>Ensure all links are updated when tickets change status.<p>## Ticket Cleanup and Streamlining<p>### When to Streamline Tickets<p>Tickets should be streamlined and cleaned up at major transition points to maintain focus on remaining work:<p>1. *Major Phase Transitions* - When moving between phases (e.g., from implementation to testing)
2. *Milestone Achievements* - After completing significant portions of work (e.g., 80%+ complete)
3. *Infrastructure Readiness* - When moving from setup/building to operational phases
4. *Team Handoffs* - When different team members will be taking over the work<p>### What to Streamline<p>*Replace Historical Implementation Details With:*
- Brief completed tasks checklist ( high-level achievements)
- Current status summary
- Forward-focused remaining work<p>*Remove or Simplify:*
- Detailed session-by-session progress logs
- Extensive implementation decision histories
- Verbose research findings documentation
- Historical status updates and coordination notes<p>### Why Streamline Tickets<p>1. *Git History Preservation* - All detailed progress, decisions, and implementation details are preserved in git commits
2. *Clarity for Future Work* - Makes it easier to quickly understand "what needs to be done next"
3. *Team Efficiency* - Anyone picking up the work can immediately see current state and next steps
4. *Maintainability* - Shorter, focused tickets are easier to read, understand, and keep updated<p>### How to Streamline<p>1. *Archive Detailed Progress* - Historical implementation details are preserved in git history
2. *Create Completion Summary* - Replace detailed progress with a brief "What's Complete" checklist
3. *Focus on Remaining Work* - Make current and future phases the primary content
4. *Update Status Sections* - Keep status concise and action-oriented
5. *Preserve Essential Context* - Keep architectural decisions, constraints, and key requirements<p>*Goal*: Transform tickets from "implementation logs" into "actionable work plans" while preserving essential context.<p>## Maintenance Requirements<p>1. Keep the TICKET_INDEX.md file up to date
2. Update "Last Updated" dates when making significant changes
3. Ensure all ticket files follow the standardized format
4. Include links between related tickets in both directions<p>## Complete Documentation<p>For detailed instructions on working with tickets, refer to:<p>- @Ticket Workflow Guide
- @Ticket Index
- @Tickets README<p>```</i></p>
]]></description><pubDate>Tue, 27 May 2025 20:07:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=44110249</link><dc:creator>cwsx</dc:creator><comments>https://news.ycombinator.com/item?id=44110249</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44110249</guid></item><item><title><![CDATA[New comment by cwsx in "GitHub MCP exploited: Accessing private repositories via MCP"]]></title><description><![CDATA[
<p>> The "cardinal rule of agent design" should be that an LLM can have access to at most two of these during one session. To avoid security issues, agents should be designed in a way that ensures this.<p>Then don't give it your API keys? Surely there's better ways to solve this (like an MCP API gateway)?<p>[I agree with you]</p>
]]></description><pubDate>Tue, 27 May 2025 12:59:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=44106532</link><dc:creator>cwsx</dc:creator><comments>https://news.ycombinator.com/item?id=44106532</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44106532</guid></item><item><title><![CDATA[New comment by cwsx in "Ask HN: Anyone struggling to get value out of coding LLMs?"]]></title><description><![CDATA[
<p>> For greenfield it’s amazing<p>I'll preface this comment with: I am a recent startup owner (so only dev, which is important) and my entire codebase has been generated via Sonnet (mostly 3.7, now using 4.0). If you actually looked at the work I'm (personally) producing, I guess I'm more of a product-owner/project-manager as I'm really just overseeing the development.<p>> I have yet to see an LLM-generated app not collapse under it’s own weight after enough iterations/prompts.<p>There's a few crucial steps to make an LLM-generated app maintainable (by the LLM):<p>- _have a very, very strong SWE background_; ideally as a "strong" Lead Dev, _this is critical_<p>- your entire workflow NEEDS to be centered around LLM-development (or even model-specific):<p><pre><code>  - use MCPs wherever possible and make sure they're specifically configured for your project

  - don't write "human" documentation; use rule + reusable prompt files

  - you MUST do this in a *very* granular but specialized way; keep rules/prompts very small (like you would when creating tickets)

  - make sure rules are conditionally applied (using globs); do not auto include anything except your "system rules"

  - use the LLM to generate said prompts and rules; this forces consistency across prompts, very important

  - follow a typical agile workflow (creating epics, tickets, backlogs etc)

  - TESTS TESTS AND MORE TESTS; add automated tools (like linters) EVERYWHERE you can

  - keep your code VERY modular so the LLM can keep a focused context, rules should provide all key context (like the broader architecture); the goal is for your LLM to only need to read or interact with files related to the strict 'current task' scope

  - iterating on code is almost always more difficult than writing it from scratch: provided your code is well architected, no single rewrite should be larger than a regular ticket (if the ticket is too large then it needs to be split up)
</code></pre>
This is off the top of my head so it's pretty broad/messy but I can expand on my points.<p>LLM-coding requires a complete overhaul of your workflow so it is tailored specifically to an LLM, not a human, but this is also a massive learning curve (that take's a lot of time to figure out and optimize). Would I bother doing this if I were still working on a team? Probably not, I don't think it would've saved me much time in a "regular" codebase. As a single developer at a startup? This is the only way I've been able to get "other startup-y" work done while also progressing the codebase - the value of being able to do multiple things at a time, let the LLM and intermittently review the output while you get to work on other things.<p>The biggest tip I can give: LLMs struggle at "coding like a human" and are much better at "bad-practice" workflows (e.g. throwing away large parts of code in favour of a total rewrite) - let the LLM lead the development process, with the rules/prompts as guardrails, and try stay out of it's way while it works (instead of saying "hey X thing didn't work, go fix that now") - hold its hand but let it experiment before jumping in.</p>
]]></description><pubDate>Tue, 27 May 2025 07:55:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=44104827</link><dc:creator>cwsx</dc:creator><comments>https://news.ycombinator.com/item?id=44104827</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44104827</guid></item></channel></rss>