Skip to main content
All posts
ComplianceUpdated 11 min read

Continuous compliance: SOPs and decision logs on every change

Unlinked branches, surprise npm deps, and empty PR descriptions break audits. Lem AI Compliance Guard runs SOPs and stores decision logs your SOC 2 reviewer can actually use.

Fast teams ship. Auditors ask why. If the only artifact is a merged PR titled “fix stuff,” you fail the question—even when the code was correct. Continuous compliance means every meaningful git event can produce a recorded decision, not a scavenger hunt in Slack three months later.

Why does compliance break on fast engineering teams?

Process documents say every branch needs a ticket and every dependency needs review. Reality: Friday hotfix, branch named fix/quick, new SDK added in one line, PR description left empty because CI was red.

  • Ticket linkage drifts—work happens on branches that do not reference Jira or ClickUp
  • Dependencies enter package.json without a security note or owner
  • PR text does not match diff scope—reviewers approve code they did not map to requirements
  • Decisions live in DMs instead of durable logs
  • Audit season becomes archaeology

What does Lem AI Compliance Guard flag?

Lem AI watches repository activity against rules you care about and opens an SOP when something looks untracked or risky—not after the quarterly audit, at the moment of change.

  • Branch name not connected to a Jira or ClickUp task
  • New node module (or similar) added to package.json without documentation
  • Pull request description missing, boilerplate-only, or unrelated to the linked ticket
  • Code changes that do not align with the linked task scope
  • Patterns your org configures as high-risk (e.g. certain paths or auth modules)

Why unlinked branches matter

If code cannot be tied to intent, you cannot answer what business problem shipped. Lem AI nudges at branch creation or PR time so the fix is cheap—link the ticket or document an exception in a decision log.

Related on Lem AI

Compliance Guard feature page

SOP types, git signals, and decision log exports.

What happens when an SOP opens?

  1. Lem AI detects the event (branch, dependency, PR) and notifies via your configured channel—often Slack.
  2. The developer or manager answers structured questions: why this change, which ticket, security impact for new deps.
  3. Responses are stored as a decision log entry with timestamp and actor.
  4. Reviewers and auditors can search or export logs alongside other Lem AI context.
  5. Work continues—goal is capture, not a multi-day ticket queue for every typo fix.

Good SOPs are short enough to complete in minutes. If your SOP feels like a second performance review, teams will route around it; Lem AI defaults toward lightweight prompts with durable storage.

Related on Lem AI

SOP Guard documentation

Configure triggers, channels, and policy expectations.

What goes into a decision log?

A decision log is not a comment on a PR—it is an audit-oriented record: what was decided, by whom, in response to which signal, with enough detail that someone outside the team can follow the rationale months later.

  • Reference to branch, PR, or dependency change
  • Linked ticket when applicable—or explicit exception reason
  • Security acknowledgment for new third-party packages
  • Approver identity when policy requires manager sign-off
  • Immutable timestamp for export to SOC 2 evidence folders

Related on Lem AI

Decision logs documentation

Format, export, and how logs connect to git events.

How teams use decision logs for SOC 2 and internal audits

Auditors ask for change management and risk assessment trails. Screenshots of Slack are weak evidence. A CSV or report of decision logs tied to repos and tickets is stronger—especially when the same platform also indexes the Slack thread that justified an exception.

  • Sample changes: random PRs with matching decision log entries
  • Dependency additions: package.json diff plus security Q&A from SOP
  • Exceptions: hotfix branches with documented break-glass rationale
  • Cross-link to implementation.md when work was ticket-driven and compliant by design

Related on Lem AI

Lem AI SOC 2

Security and compliance positioning for the platform.

Compliance plus Implementation Agent: intent to merge

Ticket-linked branches with implementation.md establish intent before code grows. Compliance Guard catches the gaps—unlinked work, dependency risk, PR drift. Together they reduce “we shipped the right fix for the wrong reason with no paper trail.”

Bottom line

Continuous compliance is not slowing shipping—it is making rationale cheap at the moment of change. Lem AI SOPs and decision logs give engineering leads and auditors the same thing developers wanted from search: traceable answers with sources, applied to how you ship code.

Frequently asked questions

What triggers a Lem AI SOP?
Common triggers include a branch name with no linked Jira or ClickUp ticket, a new entry in package.json, a pull request with a missing or off-topic description, or code changes that do not align with the linked ticket scope.
What is a decision log in Lem AI?
A structured record of who answered an SOP, what they justified, and when—tied to the git event. It is meant for auditors and leads, not as a replacement for code review.
Is this only for SOC 2 companies?
SOC 2 is a common driver, but any team that needs traceable rationale for changes—regulated industries, security-conscious startups, or internal governance—benefits from decision logs.
Does Compliance Guard block merges?
Lem AI prompts and records; enforcement policy is yours—some teams block in CI, others require SOP completion before merge. The value is captured rationale, not alert fatigue without follow-through.
How does this relate to implementation.md?
Implementation Agent grounds feature work on a ticket-linked branch. Compliance Guard catches work that skipped that process or introduced risk—together they connect intent to change.