trending

27d ago

What would make an AI provenance report trustworthy?

I think most AI governance conversations stop too early.

Teams talk about dashboards, usage charts, and prompt capture. Those are useful, but they are not the same thing as a trustworthy record.

The harder problem is this: if someone asks you six months later whether a block of code was AI-generated, can you prove the record still means what it said when it was created?

That is why we added two things in LineageLens: a provenance hash chain and a signed AI BOM export.

1mo ago

The enterprise question isn’t capture. It’s control.

On a Tuesday, the first enterprise question is usually not can you capture AI code? It s who can see the records, how long do they live, and what happens when a policy blocks a change?

That s the part LineageLens is built for. Base gives you local capture. Lite gives a shared team record. Plus and Max move the data into a backend where auth, permissions, retention, and policy live next to the provenance records instead of around them.

The useful thing here is not another dashboard. It s a self-hosted record of prompt, model, tool, file, and outcome that engineering, security, and platform teams can actually govern on their own infrastructure.

I keep seeing AI governance tools start with visibility, then discover that the real enterprise questions are identity, retention, and review. If the record cannot be scoped, retained, and exported on your side, it is not really governable.

1mo ago

When the same AI edit means different things in different places

One thing that surfaced while tightening LineageLens this week: capture is not the hard part. Agreement is.

If the extension, backend, and MCP server describe the same AI edit with slightly different field names or status values, you do not have provenance, you have three believable stories about the same event. That matters because reviewers and assistants start trusting whichever surface they looked at last.

The question I keep coming back to is simple: if a record can look applied in one place and accepted in another, is that still a single source of truth?

6d ago

Devs who've launched here: does the 12:01am PT rule still actually win?

About to launch Lineage Lens 2.0 on Product Hunt and I keep hitting the same wall everyone repeats the same playbook (Tue Thu, 12:01am PT) but the advice is years old and I can't tell what still holds.

So, asking the people who've actually done it recently:

1. 12:01am PT real edge still, or does a 7 9am PT push to a warm audience beat a cold midnight drop now?

2. Day of week is Tue/Wed/Thu still the sweet spot, or is it so crowded now that a "quieter" day wins on less competition?

15d ago

We built a capture layer for Aider, Cline, and Windsurf

Something that surprised me while building this week: "OpenAI-compatible" is a statement about the API shape, not about how code edits are expressed inside it.

Aider does not use tool calls. It sends edits as structured text blocks SEARCH/REPLACE delimiters inside the assistant message. The filename is on the line before the fence, not inside it. Cline and Continue use proper tool calls. A response from some backends carries both.

The adapter we shipped this week (`openai_chat.py` in the LineageLens proxy) handles all three patterns: tool-call edits, text-content edits (Aider SEARCH/REPLACE, unified diffs, fenced blocks), and mixed responses where both appear together. It covers Aider, Cline, Continue, Copilot CLI, Goose, Windsurf, and any OpenAI-compatible backend Azure, groq, fireworks, mistral, together.ai.

The hardest design decision was not the parsing. It was fail-open vs. fail-safe. If capture logic throws an error, do you surface it (fail-safe) or swallow it and pass through (fail-open)? We chose fail-open. A proxy that occasionally interrupts a developer's coding session gets uninstalled. Governance with a 60% retention rate is strictly worse than governance with 95% retention.

22d ago

Show PH: I built a VS Code extension that scores AI code risk

Something I built led to a design decision I want to get feedback on.

LineageLens is a free VS Code extension that captures every AI code insertion and scores it for risk on a 0 100 scale. Works with Cursor, Copilot, ClaudeCode, Gemini CLI. Zero config on install just start using your AI tools and your insertions start showing up in the sidebar.

The scoring is deterministic rules: +28 for credential-like material, +24 for eval/exec patterns, +22 for subprocess calls, +14 for landing in an auth or payments file, and so on. Fully traceable. No ML, no black box.

The design decision that surprised me: missing prompt capture when the extension records a file insertion but has no record of what was asked adds +24 to the risk score. Same weight as detecting an eval() call.

17d ago

The VS Code co-author incident asks the right question. But nobody's answered it yet.

You probably saw the VS Code 1.117 story: "Co-authored-by: Copilot" silently added to commits by default, including for code that Copilot never wrote. Microsoft reverted it in 1.119. Good.

But the revert is the wrong ending to the right story.

The developer anger was about consent and accuracy both valid. What did not get picked up in the discourse was the architectural question underneath: even when Copilot does write code, a git trailer tells you almost nothing useful. It does not carry the prompt, the model version, the temperature, the insertion timing, the correlation confidence, or any risk context. It just says "an AI tool existed in this editor."

That is not an audit trail.

1mo ago

Added a custom agent to LineageLens in one afternoon

I've been working with LineageLens and just added a custom agent adapter so our internal CLI tool is attributed with prompts, model metadata, and confidence evidence. The registry design makes this surprisingly low-friction: implement a detect(input) that returns a NormalizedAgentContext (tool name, model, session ids, confidence, and evidence), register the adapter, then run the quickstart proxy to validate captures.

Why this matters: your team can capture private or bespoke tools without sending data to a vendor, and you get prompt code linkage in PR reviews and dashboards. I followed the recent repo changes (custom agents landed in late May) and found the adapter API predictable: detection should be conservative, emit evidence items, and choose appropriate ordering so your specialist adapter wins over the fallback.

If you ve extended LineageLens for an internal tool, what heuristics did you use to build confidence and avoid false positives?

20d ago

The one provenance argument that actually creates urgency: you can't go back

Something I have been thinking about in the AI governance space that I do not see discussed enough: provenance capture is not like most tooling categories.

With most observability or audit tooling, the reasoning is "we should have this so we're better positioned going forward." You can turn it on when the need becomes clear. You lose some history, but the tooling from that point forward is complete.

AI code provenance does not work this way.

The prompt a developer submits to Claude Code exists for a few hundred milliseconds in transit. After the model returns its response and the editor applies the change, that prompt is gone. Git records the diff. Nothing else records the origin by default. There is no reconstruct operation.

10d ago

Find unreviewed AI code in your prod codebase

I started building LineageLens because I kept asking a question that nobody on my team could answer: if a CVE gets traced back to an AI-generated line in production next week, what evidence do we actually have?

Not "we use Copilot and review everything." Machine-readable evidence: which model generated which lines, with what prompt, at what confidence, and whether a human reviewed the AI context before it shipped.

For most teams, the answer is nothing. The Cloud Security Alliance put a number on it this month: 81% of organizations have no complete visibility into where AI-generated code lives in production. That gap grows larger every sprint.

LineageLens intercepts AI tool traffic at the proxy layer to capture provenance records at generation time -- the only moment when model, prompt, file path, and edit context all coexist. Then the blame engine maps those records onto current file contents:

123
Next
Last