← Documentation Home

Critical Warnings for AI Assistants

Version: 1.0.0
Last Updated: 2025-11-30
Classification: MANDATORY READING
Origin: Lessons learned from catastrophic AI mistakes on 2025-11-30


STOP - READ THIS FIRST

This document contains warnings about IRREVERSIBLE ACTIONS that AI assistants have made which caused significant damage to the project. These mistakes cannot be undone.

If you are about to: - Publish to npm - Close GitLab issues in bulk - Modify milestones - Deprecate packages

STOP. Read this entire document first.


1. npm Publishing - VERSIONS ARE PERMANENT

The Disaster

On 2025-11-30, an AI assistant published versions 0.2.6 and 0.2.7 to npm without proper verification. Both versions were broken. These version numbers are now PERMANENTLY BURNED and can NEVER be reused.

npm's policy: Once a version is published, that version number is claimed forever, even if you unpublish.

What "Burned" Means

npm publish @bluefly/openstandardagents@0.2.6  ← VERSION GONE FOREVER
npm unpublish @bluefly/openstandardagents@0.2.6  ← DOESN'T FREE THE VERSION
npm publish @bluefly/openstandardagents@0.2.6  ← ERROR: Version already exists

There is NO recovery. The version number is dead.

MANDATORY Pre-Publish Checklist

Before ANY npm publish command:

npm Commands - DANGER LEVELS

Command Risk Safeguards
npm publish EXTREME NEVER without full checklist
npm publish --tag rc HIGH Safe for testing, still burns version
npm dist-tag add LOW Only changes tag, not version
npm dist-tag rm LOW Safe, just removes tag
npm deprecate MEDIUM Reversible, warns users
npm unpublish EXTREME Only works within 72h, version still burned

Recovery Pattern

If you burn a version:

# 1. Set the last known good version as latest
npm dist-tag add @bluefly/openstandardagents@{last-good} latest

# 2. Deprecate the bad version with clear message
npm deprecate @bluefly/openstandardagents@{bad-version} "DO NOT USE - broken release, use {last-good} instead"

# 3. Skip to next version number - the burned version is GONE
# If you burned 0.2.6, next release must be 0.2.7 or higher

# 4. Update ALL references to skip the burned version
# package.json, schema files, docs, etc.

2. GitLab Issue Management - VERIFY BEFORE CLOSING

The Disaster

On 2025-11-30, an AI assistant closed 16 issues that were assigned to a milestone (v0.2.7) that was being closed. The assistant assumed that because the milestone was being closed, all issues in it were done.

They were NOT done. The milestone was being closed because it failed (versions were burned), not because work was complete.

MANDATORY Before Closing ANY Issue

How to Read Issue Comments

# Get issue with comments
glab api projects/{project-id}/issues/{issue-iid}/notes

# Look for patterns:
# - "✅ COMPLETED" or "✅ Done"
# - "Merged in MR !{number}"
# - "Closing as completed"
# - Assignment to milestone doesn't mean completed!

Issue State Meanings

State Meaning Action
Open + No comments Work not started Leave open
Open + "WIP" comment Work in progress Leave open, add label
Open + MR linked (draft) Work in progress Leave open
Open + MR linked (merged) MAYBE done Check if MR actually implements issue
Open + "✅ COMPLETED" Done Safe to close
Closed Should be verified done If reopening, READ COMMENTS FIRST

Bulk Operations Are DANGEROUS

# NEVER do this:
for issue in $(glab issue list --state opened); do
  glab issue close $issue  # ← CATASTROPHIC
done

# ALWAYS do this:
for issue in $(glab issue list --state opened); do
  echo "Checking issue $issue..."
  glab api projects/{id}/issues/{issue}/notes  # READ COMMENTS
  read -p "Close this issue? (y/n) " confirm
  if [ "$confirm" = "y" ]; then
    glab issue close $issue
  fi
done

3. Milestone Management - UNDERSTAND STATE FIRST

The Disaster

An AI assistant moved issues between milestones without understanding: 1. Why issues were in that milestone 2. Whether issues were completed 3. What the milestone state meant

MANDATORY Before Milestone Operations

Milestone State Matrix

Action Issues Done Issues Not Done
Release milestone Close issues Move to next milestone
Abandon milestone Keep closed Move to next or backlog
Delay milestone Keep as-is Keep as-is

4. Irreversible Action Checklist

Before performing ANY of these actions, complete the checklist:

npm publish

GitLab issue close (bulk)

GitLab milestone close

Package deprecation

Git force push


5. Recovery Procedures

If You Burned an npm Version

# 1. Don't panic, but the version is GONE forever
# 2. Set last known good as latest
npm dist-tag add @scope/package@{good-version} latest

# 3. Deprecate bad version
npm deprecate @scope/package@{bad-version} "Broken release - use {good-version}"

# 4. Update package.json to skip burned version
# 5. Update ALL documentation to skip burned version
# 6. Create GitLab issue documenting what happened

If You Closed Issues That Weren't Done

# 1. Get list of recently closed issues
glab api projects/{id}/issues?state=closed&updated_after={date}

# 2. For each, READ THE COMMENTS
glab api projects/{id}/issues/{iid}/notes

# 3. If no completion marker, reopen
glab api -X PUT projects/{id}/issues/{iid} -f state_event=reopen

# 4. Add comment explaining what happened
glab api -X POST projects/{id}/issues/{iid}/notes -f body="Reopened - was closed in error without verification"

If You Moved Issues to Wrong Milestone

# 1. List issues in milestone
glab api projects/{id}/issues?milestone={name}

# 2. Verify each should be there
# 3. Move incorrectly placed issues
glab api -X PUT projects/{id}/issues/{iid} -f milestone_id={correct-id}

6. The Golden Rule

When in doubt, ASK THE USER.

Do not assume: - That a milestone closing means issues are done - That a version is ready to publish - That bulk operations are safe - That you understand the current project state

Ask: - "Should I close issue #{number}? Comments indicate {status}." - "Ready to publish {version} to npm? This is irreversible." - "Moving {count} issues from {old} to {new} - confirm?" - "I'm about to {action} which cannot be undone - proceed?"


7. Summary of Today's Damage (2025-11-30)

Mistake Impact Prevention
Published broken 0.2.6 Version burned forever Use RC tag first
Published broken 0.2.7 Version burned forever Test RC before promoting
Closed 16 incomplete issues Lost tracking Read comments first
Assumed milestone close = done Issues lost Verify completion state

Total versions lost: 2 (0.2.6, 0.2.7)
Recovery path: Skip to 0.2.8, rebuild all references
Time lost: Entire day
Trust impact: Significant


This document exists because of real mistakes. Learn from them. Don't repeat them.