Building a session retrospective skill for Claude Code
I've been using Claude Code for a while now, and I noticed a pattern: at the end of a productive session, I'd have this vague sense of "we figured out some useful stuff" but no concrete record of what those lessons actually were.
Recently, I learned of a skill called continuous-learning. It automatically extracts reusable patterns and saves them as skills. But I wanted something different. Not automated pattern extraction, but a human-readable summary I could actually share. Something I could look back on, or turn into a blog post.
So I built the session-retrospective skill.
What it does
The skill analyzes the current Claude session and generates a markdown summary covering:
- What we set out to do
- Problems encountered and how they were solved
- Mistakes made and corrections
- Techniques discovered worth remembering
- Key takeaways
The output goes straight to console for copy/paste. No files created, no cleanup needed …
Chicken-Scheme FFI Examples
I'm currently working on refactoring the FFI implementation for the Rebel Game Engine. It was previously written using the Bind chicken egg but I wanted to have more control over the implementation by using the low level foreign functions.
To help me better understand I made some examples that has the basic FFI implementations that I'll be needing for my project.
foreign-lambda example
Let's say we have a structure Vec3 and a function Vec3Create that we want to access from chicken-scheme.
typedef struct Vec3 {
float x;
float y;
float z;
} Vec3;
Vec3* Vec3Create(float x, float y, float z)
{
Vec3* v = (Vec3*)malloc(sizeof(Vec3));
v->x = x;
v->y = y;
v->z = z;
return v;
}
We could use foreign-lambda to bind to the function:
(define vec3_create
(foreign-lambda
(c-pointer (struct "Vec3")) ; Return type, a pointer to a struct object of Vec3
"Vec3Create" ; Name fo the function
float float float)) ; The …