A Mental Model for AI-augmented Software Development
Any collaboration between a human and an AI agent can be characterized by two observable properties, regardless of the tools, the model, or the organization.
Judgment delegation
| /* style.css - Newsprint / Academic Reading */ | |
| body { | |
| font-family: "Georgia", "Palatino Linotype", "Times New Roman", serif; | |
| font-size: 18px; /* Slightly larger for reading */ | |
| line-height: 1.7; | |
| color: #333; | |
| background-color: #f9f9f5; /* The signature cream paper color */ | |
| max-width: 800px; | |
| margin: 0 auto; | |
| padding: 40px; |
| ⍝ DAY 1 | |
| in←⊃⎕nget'01.txt'1 | |
| digitsStr←'one' 'two' 'three' 'four' 'five' 'six' 'seven' 'eight' 'nine' | |
| mask←{(⍳9)+.×↑(⍷∘⍺)¨⍵} | |
| part1←+/{10⊥(⊃,¯1∘↑)(⍵ mask '123456789')~0}¨in | |
| part2←+/{10⊥(⊃,¯1∘↑)((⍵ mask '123456789')∨⍵ mask digitsStr)~0}¨in | |
| ⍝ DAY 2 |
| interface SsmParameter { | |
| ssmName: string; | |
| ssmType: "String" | "SecureString"; | |
| configType?: "string" | "number" | "boolean"; | |
| } | |
| class SsmConfig<Config, C extends Record<string, SsmParameter> = {}> { | |
| constructor(private config: C) {} | |
| static builder<Config>(): SsmConfig<Config, {}> { | |
| return new SsmConfig<Config, {}>({}); |
| (ns aoc.day12 | |
| (:require [clojure.java.io :as io] | |
| [clojure.string :as str])) | |
| (defn parse-input [file-name] | |
| (reduce (fn [graph [a b]] | |
| (-> graph | |
| (update a conj b) | |
| (update b conj a))) | |
| {} |
| (ns dev.pathom-playground | |
| (:require [com.wsscode.pathom3.connect.indexes :as pci] | |
| [com.wsscode.pathom3.connect.operation :as pco] | |
| [com.wsscode.pathom3.interface.eql :as p.eql])) | |
| ;; that one works fine | |
| (pco/defresolver timezone-resolver [item] | |
| {::pco/input [:timezone/id] | |
| ::pco/output [:timezone/label]} | |
| {:timezone/label (str "label for id " (:timezone/id item))}) |
| function unserialize(serialized) { | |
| serialized = serialized.split("") | |
| const res = [] | |
| const parseNumber = () => { | |
| next = serialized.shift() | |
| let digits = "" | |
| while (!isNaN(parseInt(next))) { | |
| digits += next | |
| next = serialized.shift() |
| (ns playground | |
| (:refer-clojure :exclude [==]) | |
| (:use clojure.core.logic) | |
| (:require [java-time :as jt] | |
| [clojure.core.logic.fd :as fd])) | |
| ;; INITIAL DATA | |
| (def nb-parcells 4) | |
| (def days-to-plan 10) | |
| (def crop-growth-days 3) |
| const express = require('express'); | |
| const cors = require('cors'); | |
| const bodyParser = require('body-parser'); | |
| const { | |
| connect, syncDb, buildAndRegisterModel, setupAssociations, mapException, mapQueryParams | |
| } = require('serve-sequelize'); | |
| const app = express(); | |
| const sequelize = connect({ |