Add CLAUDE.md, README.md, gitignore, and ai-chats protocol
Sets up project documentation including AI transparency policy, public identity (lavender-daydream), usage/credit terms, and the ai-chats logging protocol. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
42
.ai-chats/2026-06-13-01-gitea-push-setup/Sonnet-4.6--00.md
Normal file
42
.ai-chats/2026-06-13-01-gitea-push-setup/Sonnet-4.6--00.md
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
# Session Summary — 2026-06-13-01-gitea-push-setup
|
||||||
|
|
||||||
|
**Date:** 2026-06-13
|
||||||
|
**Model:** Sonnet-4.6 (Claude Code)
|
||||||
|
**Status:** ✅ Complete
|
||||||
|
|
||||||
|
## What We Did
|
||||||
|
|
||||||
|
- Initialized git repo for the Artfight HTML project
|
||||||
|
- Added Gitea remote with SSH URL on port 2222
|
||||||
|
- Diagnosed and resolved SSH authentication failure:
|
||||||
|
- SSH config already had correct entry (`git.lavender-daydream.com`, port 2222, `id_ed25519_mew`)
|
||||||
|
- SSH agent had no identities loaded (`ssh-add -l` returned empty)
|
||||||
|
- Fixed by running `ssh-add ~/.ssh/id_ed25519_mew`
|
||||||
|
- Renamed branch from `master` to `main`
|
||||||
|
- Pushed initial commit to Gitea
|
||||||
|
|
||||||
|
## Key Commands
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git init
|
||||||
|
git remote add git-lav ssh://git@git.lavender-daydream.com:2222/berlyn/Artfight-HTML.git
|
||||||
|
git add .
|
||||||
|
git commit -m "Initial commit"
|
||||||
|
git branch -m master main
|
||||||
|
ssh-add ~/.ssh/id_ed25519_mew
|
||||||
|
git push -u git-lav main
|
||||||
|
```
|
||||||
|
|
||||||
|
## Root Cause
|
||||||
|
|
||||||
|
SSH agent was empty — key was not loaded despite being correctly configured in `~/.ssh/config`. The agent loses loaded keys on reboot/session restart. Fix: `ssh-add` the key.
|
||||||
|
|
||||||
|
## Lessons Learned
|
||||||
|
|
||||||
|
- SSH config being correct is not enough — the key also needs to be loaded into the agent (`ssh-add`)
|
||||||
|
- `no identity pubkey loaded` in verbose SSH output (`-v`) indicates the agent isn't holding the key
|
||||||
|
- For non-standard SSH ports, use the `ssh://` URL format: `ssh://git@host:PORT/user/repo.git`
|
||||||
|
|
||||||
|
## Exchange Index
|
||||||
|
|
||||||
|
- `Sonnet-4.6--01.md` — Full verbatim session exchange
|
||||||
133
.ai-chats/2026-06-13-01-gitea-push-setup/Sonnet-4.6--01.md
Normal file
133
.ai-chats/2026-06-13-01-gitea-push-setup/Sonnet-4.6--01.md
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
# Exchange 01 — 2026-06-13-01-gitea-push-setup
|
||||||
|
|
||||||
|
**Model:** Sonnet-4.6 (Claude Code)
|
||||||
|
**Date:** 2026-06-13
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**User:** help me push to my gitea
|
||||||
|
|
||||||
|
```
|
||||||
|
sh-5.3$ git init
|
||||||
|
hint: Using 'master' as the name for the initial branch. This default branch name
|
||||||
|
hint: will change to "main" in Git 3.0. To configure the initial branch name
|
||||||
|
hint: to use in all of your new repositories, which will suppress this warning,
|
||||||
|
hint: call:
|
||||||
|
hint:
|
||||||
|
hint: git config --global init.defaultBranch <name>
|
||||||
|
hint:
|
||||||
|
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
|
||||||
|
hint: 'development'. The just-created branch can be renamed via this command:
|
||||||
|
hint:
|
||||||
|
hint: git branch -m <name>
|
||||||
|
hint:
|
||||||
|
hint: Disable this message with "git config set advice.defaultBranchName false"
|
||||||
|
hint:
|
||||||
|
Initialized empty Git repository in /mnt/shared/.src/Artfight HTML/.git/
|
||||||
|
sh-5.3$ git remote add git-lav https://git.lavender-daydream.com/berlyn/Artfight-HTML.git
|
||||||
|
git push -u git-lav main
|
||||||
|
error: src refspec main does not match any
|
||||||
|
error: failed to push some refs to 'https://git.lavender-daydream.com/berlyn/Artfight-HTML.git'
|
||||||
|
sh-5.3$ ^C
|
||||||
|
sh-5.3$
|
||||||
|
```
|
||||||
|
|
||||||
|
**Assistant:** The repo initialized with `master` but you're pushing `main`. You need to either rename the branch or make an initial commit first (git won't push an empty repo).
|
||||||
|
|
||||||
|
[checked git status and branches — no commits yet, on branch master]
|
||||||
|
|
||||||
|
The repo is empty — no files have been staged or committed yet. Here's what to do:
|
||||||
|
|
||||||
|
1. **Add your files and make an initial commit**
|
||||||
|
2. **Rename the branch to `main`**
|
||||||
|
3. **Push**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git add .
|
||||||
|
git commit -m "Initial commit"
|
||||||
|
git branch -m master main
|
||||||
|
git push -u git-lav main
|
||||||
|
```
|
||||||
|
|
||||||
|
Run those in order in your terminal. If there are no files in the folder yet, you'd need to add some first before the commit will work.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**User:** auth failed. do i need to set up ssh? I think it's port 2222?
|
||||||
|
|
||||||
|
**Assistant:** Yes, SSH is likely easier. For a non-standard port, the remote URL format is:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git remote set-url git-lav ssh://git@git.lavender-daydream.com:2222/berlyn/Artfight-HTML.git
|
||||||
|
```
|
||||||
|
|
||||||
|
Then push as normal. Make sure your SSH key is added to your Gitea account (Settings → SSH/GPG Keys).
|
||||||
|
|
||||||
|
If you're not sure which key to use, run `cat ~/.ssh/*.pub` to see your public keys.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**User:** permission denied public key
|
||||||
|
|
||||||
|
**Assistant:** [listed public keys and tested SSH — got Permission denied (publickey)]
|
||||||
|
|
||||||
|
You have keys but none are being offered to that server. You need to either:
|
||||||
|
|
||||||
|
1. **Add your public key to Gitea** — copy one of your existing keys and paste it into Gitea → Settings → SSH/GPG Keys. The most likely candidate:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cat ~/.ssh/id_ed25519_mew.pub
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Tell SSH which key to use** by adding to `~/.ssh/config`:
|
||||||
|
|
||||||
|
```
|
||||||
|
Host git.lavender-daydream.com
|
||||||
|
User git
|
||||||
|
Port 2222
|
||||||
|
IdentityFile ~/.ssh/id_ed25519_mew
|
||||||
|
```
|
||||||
|
|
||||||
|
Do you already have the public key added to your Gitea account, or do you need to add it?
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**User:** ssh key has already been added to the server
|
||||||
|
|
||||||
|
**Assistant:** [read ~/.ssh/config — entry for git.lavender-daydream.com already existed with correct key and port 2222]
|
||||||
|
|
||||||
|
The config looks correct. Let's test with verbose output to see what's failing:
|
||||||
|
|
||||||
|
[ran verbose SSH test — output showed: `no identity pubkey loaded from /home/berlyn/.ssh/id_ed25519_mew`]
|
||||||
|
|
||||||
|
The issue is `no identity pubkey loaded` — SSH can't use the key, likely because it's passphrase-protected and there's no agent running.
|
||||||
|
|
||||||
|
[checked ssh-add -l — "The agent has no identities."]
|
||||||
|
|
||||||
|
No keys loaded in the agent. Add your key:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh-add ~/.ssh/id_ed25519_mew
|
||||||
|
```
|
||||||
|
|
||||||
|
It'll prompt for your passphrase (if it has one), then the push should work. After that, retry:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git push -u git-lav main
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**User:** identity added
|
||||||
|
|
||||||
|
**Assistant:** Try the push now:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git push -u git-lav main
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**User:** can we document this in ai-chats in this folder and in /mnt/shared/Documents/.ai-chats ?
|
||||||
|
|
||||||
|
**Assistant:** [created session documentation in both locations]
|
||||||
14
.ai-chats/INDEX.md
Normal file
14
.ai-chats/INDEX.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# AI-Chats Master Index
|
||||||
|
|
||||||
|
**Project:** Artfight HTML
|
||||||
|
**Protocol Version:** 3.2
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2026-06-13
|
||||||
|
|
||||||
|
### [01] [Folder: 2026-06-13-01-gitea-push-setup](./2026-06-13-01-gitea-push-setup/)
|
||||||
|
- **Topic:** Initial git setup and push to Gitea — fixed SSH agent (ssh-add) issue
|
||||||
|
- **Models Used:** Sonnet-4.6
|
||||||
|
- **Files:** 2 files
|
||||||
|
- **Status:** ✅ Complete
|
||||||
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# Private Claude config — stays on Gitea only, never pushed publicly
|
||||||
|
CLAUDE.private.md
|
||||||
178
CLAUDE.md
Normal file
178
CLAUDE.md
Normal file
@@ -0,0 +1,178 @@
|
|||||||
|
# CLAUDE.md
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code when working with code in this repository.
|
||||||
|
|
||||||
|
## 🚨 MANDATORY FOR AI AGENTS - AI-CHATS PROTOCOL v3.2
|
||||||
|
|
||||||
|
Adhere to the `./.ai-chats/README.md` protocol with every chat and every exchange!
|
||||||
|
|
||||||
|
### 📁 Session Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
.ai-chats/
|
||||||
|
├── INDEX.md ← MASTER INDEX (MANDATORY!)
|
||||||
|
├── README.md ← Full protocol documentation
|
||||||
|
└── YYYY-MM-DD-NN-description/ ← Session folder
|
||||||
|
├── [Model-Version]--00.md ← Summary, tech, lessons
|
||||||
|
├── [Model-Version]--01.md ← Exchange 1 (VERBATIM)
|
||||||
|
└── [Model-Version]--NN.md ← Continue 01-99
|
||||||
|
```
|
||||||
|
|
||||||
|
### 🔴 Critical Filename Rules
|
||||||
|
|
||||||
|
| Rule | ❌ Wrong | ✅ Correct |
|
||||||
|
|-------------------------|-------------------------|------------------------|
|
||||||
|
| No spaces | `Opus 4.5--00.md` | `Opus-4.5--00.md` |
|
||||||
|
| Double dash before seq | `Opus-4.5-00.md` | `Opus-4.5--00.md` |
|
||||||
|
| Include version | `Opus--00.md` | `Opus-4.5--00.md` |
|
||||||
|
|
||||||
|
### 📋 Session Start Checklist
|
||||||
|
|
||||||
|
1. Check `.ai-chats/` exists → Create if missing
|
||||||
|
2. Check `INDEX.md` exists → Create from template if missing
|
||||||
|
3. Check for today's folders (`YYYY-MM-DD-*`)
|
||||||
|
4. Create/use session folder: `YYYY-MM-DD-NN-description/`
|
||||||
|
5. Create `[Model-Version]--00.md` (summary) + `--01.md` (first exchange)
|
||||||
|
|
||||||
|
### 📋 Session End Checklist
|
||||||
|
|
||||||
|
1. Update `--00.md` with final summary and exchange index
|
||||||
|
2. **UPDATE INDEX.md** with session info, file count, status
|
||||||
|
3. Commit to git
|
||||||
|
|
||||||
|
### ⚠️ Critical Rules
|
||||||
|
|
||||||
|
- **--00 files**: Summary, tech details, lessons learned, next steps
|
||||||
|
- **--01+ files**: COMPLETE VERBATIM exchanges - **NO SUMMARIZATION!**
|
||||||
|
- **INDEX.md**: Must be updated after EVERY session
|
||||||
|
- **Model names**: `Opus-4.5`, `Sonnet-4.5`, `Haiku-3.5` (Claude Code)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📖 Project Overview
|
||||||
|
|
||||||
|
**Artfight HTML** is a public repository by **lavender-daydream** (Lav) containing:
|
||||||
|
|
||||||
|
- **Reusable HTML templates** for Artfight character/profile pages
|
||||||
|
- **Lavender's own Artfight character HTML pages** — for personal reference and public inspiration
|
||||||
|
|
||||||
|
This repo is intended to help the Artfight community use and customize HTML on their profiles and character pages.
|
||||||
|
|
||||||
|
**Owner:** lavender-daydream
|
||||||
|
|
||||||
|
> **Note for Claude:** The owner's public name is **lavender-daydream** (also referred to as **Lavender** or **Lav**). Never use their real name (Berlyn / Berlyn Neese) in any file, comment, or output in this repository — this is a public repo under their community identity.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🏗️ Repository Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
artfight-html/
|
||||||
|
├── templates/ # Reusable HTML templates (copy-friendly)
|
||||||
|
│ └── character-template-1.html
|
||||||
|
├── characters/ # Lav's own Artfight character pages
|
||||||
|
│ └── [character-name].html
|
||||||
|
├── .ai-chats/ # AI session documentation
|
||||||
|
├── AI-DISCLOSURE.md # Plain-English log of all AI involvement
|
||||||
|
└── CLAUDE.md
|
||||||
|
```
|
||||||
|
|
||||||
|
### Adding a New Template
|
||||||
|
|
||||||
|
1. Create file in `templates/` with a descriptive name: `templates/[purpose]-[variant].html`
|
||||||
|
2. Include a standard header comment block at the top (see AI Transparency section below)
|
||||||
|
3. Keep templates self-contained — inline all styles, avoid external dependencies
|
||||||
|
|
||||||
|
### Adding a Character Page
|
||||||
|
|
||||||
|
1. Create file in `characters/` named after the character: `characters/[character-name].html`
|
||||||
|
2. Include a standard header comment block at the top (see AI Transparency section below)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📝 HTML Conventions
|
||||||
|
|
||||||
|
- **Self-contained files**: All CSS should be `<style>` tags inline; no external stylesheets
|
||||||
|
- **No JavaScript**: Artfight does not support JS — do not add `<script>` tags
|
||||||
|
- **Artfight HTML limits**: Be mindful of character limits and tag restrictions on Artfight profiles
|
||||||
|
- **Comments**: Use HTML comments (`<!-- -->`) to explain sections for people copying templates
|
||||||
|
- **Semantic HTML**: Prefer semantic tags (`<section>`, `<article>`, `<aside>`) over pure `<div>` soup where it reads more clearly
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🤖 AI Transparency
|
||||||
|
|
||||||
|
Art communities deserve to know when AI is involved. **Every file in this repo must clearly disclose any AI involvement**, so that people can make their own informed choice about whether to use the code.
|
||||||
|
|
||||||
|
### Required Header Comment (ALL files)
|
||||||
|
|
||||||
|
Every `.html` file must start with a comment block like this:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<!--
|
||||||
|
============================================================
|
||||||
|
FILE: [filename].html
|
||||||
|
AUTHOR: lavender-daydream (https://artfight.net/~Lavender-Daydream)
|
||||||
|
============================================================
|
||||||
|
|
||||||
|
AI INVOLVEMENT:
|
||||||
|
[One of the following — be honest and specific]
|
||||||
|
|
||||||
|
✅ No AI used — written entirely by Lav.
|
||||||
|
|
||||||
|
OR
|
||||||
|
|
||||||
|
🤖 AI-assisted — details below:
|
||||||
|
- Tool: Claude Sonnet 4.6 (Claude Code)
|
||||||
|
- What AI did: [e.g. "wrote the initial layout from scratch",
|
||||||
|
"suggested the color variables",
|
||||||
|
"rewrote lines 42-67 for better readability"]
|
||||||
|
- What Lav did: [e.g. "chose all colors, adjusted spacing,
|
||||||
|
wrote all character-specific content"]
|
||||||
|
============================================================
|
||||||
|
-->
|
||||||
|
```
|
||||||
|
|
||||||
|
If AI edits a file after the initial header is written, **update the AI INVOLVEMENT section** to reflect the new changes. Be specific about which lines or sections were touched.
|
||||||
|
|
||||||
|
### AI-DISCLOSURE.md (Central Log)
|
||||||
|
|
||||||
|
A file called `AI-DISCLOSURE.md` lives at the root of this repo. It is a plain-English log that anyone — including people who don't know how to code — can read to understand AI involvement across the whole project.
|
||||||
|
|
||||||
|
**You must update `AI-DISCLOSURE.md` every time a file is created or AI-edited.** Format:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
## [filename].html
|
||||||
|
- **Location:** templates/ or characters/
|
||||||
|
- **AI involved:** Yes / No
|
||||||
|
- **AI tool:** Claude Sonnet 4.6 (if applicable)
|
||||||
|
- **What AI did:** [plain English description]
|
||||||
|
- **What Lav did:** [plain English description]
|
||||||
|
- **Last updated:** YYYY-MM-DD
|
||||||
|
```
|
||||||
|
|
||||||
|
### Rules for Claude
|
||||||
|
|
||||||
|
- **Never create or edit an HTML file without updating its header comment and `AI-DISCLOSURE.md`**
|
||||||
|
- If Lav writes a file herself and asks you to make a small edit, note the edit specifically — do not overwrite the "No AI used" status for the whole file
|
||||||
|
- When in doubt, disclose more, not less
|
||||||
|
- The goal is that someone browsing this repo can always tell exactly what a human made vs. what AI made
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚖️ Usage & Credit
|
||||||
|
|
||||||
|
All HTML in this repository is free to use and modify, but **credit is required**.
|
||||||
|
|
||||||
|
- Link back to this repository or credit **lavender-daydream** when using templates or character page code
|
||||||
|
- You may adapt and modify freely for your own Artfight use
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 Artfight Resources
|
||||||
|
|
||||||
|
- **Lavender's Artfight profile**: [artfight.net/~Lavender-Daydream](https://artfight.net/~Lavender-Daydream)
|
||||||
|
- **Lavender's website**: [lavender-daydream.com](https://www.lavender-daydream.com/)
|
||||||
|
- **Lavender's links**: [linkstack.lavender.spl.tech/@Lavender-Daydream](https://linkstack.lavender.spl.tech/@Lavender-Daydream)
|
||||||
|
- **Artfight**: [artfight.net](https://artfight.net/)
|
||||||
|
- **Artfight HTML Guide**: [artfight.net/info/html](https://artfight.net/info/html) (if applicable)
|
||||||
44
README.md
Normal file
44
README.md
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
# Artfight HTML
|
||||||
|
|
||||||
|
A public collection of HTML templates and character pages for [Artfight](https://artfight.net/), maintained by **[lavender-daydream](https://artfight.net/~Lavender-Daydream)**.
|
||||||
|
|
||||||
|
Whether you're new to Artfight's HTML editor or just looking for something to build from, feel free to browse, copy, and adapt anything here — just credit me!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📁 What's in here
|
||||||
|
|
||||||
|
### `templates/`
|
||||||
|
Reusable HTML snippets you can copy and customize for your own Artfight profiles and character pages. Each template is self-contained (no external stylesheets or scripts needed).
|
||||||
|
|
||||||
|
### `characters/`
|
||||||
|
My own Artfight character pages. These are personal, but you're welcome to use them as reference or inspiration.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚖️ Usage & Credit
|
||||||
|
|
||||||
|
Everything here is **free to use and modify** for your own Artfight pages.
|
||||||
|
|
||||||
|
**Credit is required** — please either:
|
||||||
|
- Link back to this repository, or
|
||||||
|
- Credit **lavender-daydream** on the page where you use the code
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🤖 AI Transparency
|
||||||
|
|
||||||
|
I use AI (Claude Code) as a coding assistant when building some of these files. Because art communities have valid concerns about AI, I believe in being fully transparent:
|
||||||
|
|
||||||
|
- Every file has a comment at the top stating whether AI was involved and exactly what it did
|
||||||
|
- A full log is available in [AI-DISCLOSURE.md](AI-DISCLOSURE.md) — written in plain English, no coding knowledge needed to read it
|
||||||
|
|
||||||
|
You can use this information to decide for yourself whether you're comfortable using a particular file.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 Find me
|
||||||
|
|
||||||
|
- **Artfight:** [artfight.net/~Lavender-Daydream](https://artfight.net/~Lavender-Daydream)
|
||||||
|
- **Website:** [lavender-daydream.com](https://www.lavender-daydream.com/)
|
||||||
|
- **Links:** [linkstack.lavender.spl.tech/@Lavender-Daydream](https://linkstack.lavender.spl.tech/@Lavender-Daydream)
|
||||||
15
ai-chats/README.md
Normal file
15
ai-chats/README.md
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# 📚 AI-Chats Protocol Documentation v3.2
|
||||||
|
|
||||||
|
See full protocol at: `~/.claude/.ai-chats/README.md`
|
||||||
|
|
||||||
|
## Quick Reference
|
||||||
|
|
||||||
|
- **Folder pattern:** `YYYY-MM-DD-NN-description/`
|
||||||
|
- **File pattern:** `[Model-Version]--NN.md` (NO SPACES, DOUBLE DASH)
|
||||||
|
- **--00:** Summary file
|
||||||
|
- **--01+:** Verbatim exchanges
|
||||||
|
|
||||||
|
## Models
|
||||||
|
- Claude Code: `Opus-4.5`, `Sonnet-4.5`, `Haiku-3.5`
|
||||||
|
- Claude.ai: `Sonnet-4.6`
|
||||||
|
- Kilo Code: `kilo-auto-free`
|
||||||
Reference in New Issue
Block a user