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